使用NSRegularExpression,我尝试循环匹配字符串列表中的单词。
// myList is a NSMutableArray formed when the program starts
NSError *error;
NSString *string = @"This is my long long string";
NSString *pattern;
for (NSString * word in myList){
pattern = [NSString stringWithFormat: @"\\b%@\\b", word];
NSRegularExpression *regex = [NSRegularExpression
regularExpressionWithPattern:pattern
options:NSRegularExpressionCaseInsensitive error:&error];
[regex enumerateMatchesInString:string options:0
range:NSMakeRange(0, [string length])
usingBlock:^(NSTextCheckingResult *match,
NSMatchingFlags flags, BOOL *stop){
... doing smthg with matched word location
}];
}
循环开始时,模式已正确设置为\bFirstWord\b
(如控制台中所示),并且枚举工作正常。但是在循环的第二阶段,模式未正确转义,并形成为\\bSecondWord\\b
,因此枚举从未在字符串中找到单词。有什么可以解释这种奇怪的行为?