使用正则expression式searchNSString

我怎么可以去使用正则expression式search/枚举通过NSString

正则expression式,例如: /(NS|UI)+(\w+)/g

你需要使用NSRegularExpression类。

文档中的例子:

 NSString *yourString = @""; NSError *error = NULL; NSRegularExpression *regex = [NSRegularExpression regularExpressionWithPattern:@"(NS|UI)+(\\w+)" options:NSRegularExpressionCaseInsensitive error:&error]; [regex enumerateMatchesInString:yourString options:0 range:NSMakeRange(0, [yourString length]) usingBlock:^(NSTextCheckingResult *match, NSMatchingFlags flags, BOOL *stop){ // your code to handle matches here }]; 

如果您只想匹配string中的某个模式,则可以使用NSStringtesting正则expression式:

 NSString *string = @"Telecommunication"; if ([string rangeOfString:@"comm" options:NSRegularExpressionSearch].location != NSNotFound) NSLog(@"Got it"); else NSLog(@"No luck"); 

请注意,通常你会想…

 if ([string rangeOfString:@"cOMm" options:NSRegularExpressionSearch|NSCaseInsensitiveSearch].location != NSNotFound) NSLog(@"yes match"); 

在Swift中,你可以写这样的代码…

  let string = "Telecommunication" if string.rangeOfString("cOMm", options: (NSStringCompareOptions.RegularExpressionSearch | NSStringCompareOptions.CaseInsensitiveSearch)) != nil { print("Got it"); } else { print("No luck"); } 

请注意rangeOfString(...)返回Range<String.Index>? 如果在Xcode 6.3.2中search失败,返回nil