NSString格式化的字符串有时不会转义反斜杠

时间:2018-12-10 16:10:58

标签: escaping nsstring nsregularexpression

使用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,因此枚举从未在字符串中找到单词。有什么可以解释这种奇怪的行为?

0 个答案:

没有答案