我收到一个奇怪的警告,因此我的正则表达式搜索不起作用。这是一行:
NSRange r = [HTML rangeOfString:@"\|(.*)\|" options:NSRegularExpressionSearch];
HTML
是一个字符串,我确定它包含上述正则表达式的单个匹配项。
警告仅在第一次出现“\|”时出现,而不是同时出现。
非常感谢任何帮助!
最佳答案
您收到警告是因为 \|
在 Objective-C(或 C 或 C++)中不是有效的转义序列。编译器忽略它,只使用原始 |
字符,所以您实际传入的字符串是 @"|(.*)|"
.
要获得所需的行为,您必须转义源代码中的反斜杠,以便正则表达式引擎看到文字反斜杠并解释 |
字符作为文字而不是交替,例如@"\\|(.*)\\|"
.
关于objective-c - iOS 正则表达式 : Unknown escape sequence "\|",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11442101/