Строка в формате NSString иногда не имеет обратной косой черты - PullRequest
0 голосов
/ 10 декабря 2018

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

...