Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/19.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ios NSRegularExpression-如何匹配可能包含括号、方括号等的文本_Ios_Regex_Nsregularexpression - Fatal编程技术网

Ios NSRegularExpression-如何匹配可能包含括号、方括号等的文本

Ios NSRegularExpression-如何匹配可能包含括号、方括号等的文本,ios,regex,nsregularexpression,Ios,Regex,Nsregularexpression,我的文本中可能有圆括号、方括号和一个子字符串,它们具有相同的文本。如何通过正则表达式匹配这些文本,但不区分大小写 NSError* error = nil; NSString* text = @"Hello (extreme elevation) - some longer string"; NSString* obj = @"hello (extreme elevation)"; NSRegularExpression* regex = [NSRegularExpression regular

我的文本中可能有圆括号、方括号和一个子字符串,它们具有相同的文本。如何通过正则表达式匹配这些文本,但不区分大小写

NSError* error = nil;
NSString* text = @"Hello (extreme elevation) - some longer string";
NSString* obj = @"hello (extreme elevation)";
NSRegularExpression* regex = [NSRegularExpression regularExpressionWithPattern:obj
                                                                       options:NSRegularExpressionCaseInsensitive
                                                                         error:&error];
NSArray* matches = [regex matchesInString:text
                                  options:0
                                    range:NSMakeRange(0, text.length)];
这与任何内容都不匹配,即使Obj将hello大写,它也不会通过regex匹配,而是通过NSString rangeOfString匹配。在这种情况下,我希望能够将obj与文本匹配,在其他情况下,我可能会使用括号,例如:

NSString* text = @"Hello [extreme elevation]";
NSString* obj = @"hello [extreme elevation]";

在正则表达式的上下文中,圆括号、方括号、星号、加号和其他类似字符称为元字符。为了匹配它们,您需要

  • 用反斜杠避开它们,或者
  • 用一对方括号将它们括起来
回想一下,反斜杠也是由Objective-C编译器解释的,因此,如果将表达式放在字符串文字中,则需要将反斜杠加倍,如下所示:

NSString* obj = @"hello \\(extreme elevation\\)";
方括号方法在这里也适用:

NSString* obj = @"hello [(]extreme elevation[)]";
(它适用于除方括号外的所有元字符,方括号需要用反斜杠转义):


在正则表达式的上下文中,圆括号、方括号、星号、加号和其他类似字符称为元字符。为了匹配它们,您需要

  • 用反斜杠避开它们,或者
  • 用一对方括号将它们括起来
回想一下,反斜杠也是由Objective-C编译器解释的,因此,如果将表达式放在字符串文字中,则需要将反斜杠加倍,如下所示:

NSString* obj = @"hello \\(extreme elevation\\)";
方括号方法在这里也适用:

NSString* obj = @"hello [(]extreme elevation[)]";
(它适用于除方括号外的所有元字符,方括号需要用反斜杠转义):

可能的重复可能的重复