Используя 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
, поэтому перечисление никогда не находит слово в строке.Чем можно объяснить это странное поведение?