使用正则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中的某个模式,则可以使用NSString
testing正则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