objective-c - iOS 正则表达式 : Unknown escape sequence "\|"

标签 objective-c ios regex nsregularexpression

我收到一个奇怪的警告,因此我的正则表达式搜索不起作用。这是一行:

NSRange r = [HTML rangeOfString:@"\|(.*)\|" options:NSRegularExpressionSearch];

HTML 是一个字符串,我确定它包含上述正则表达式的单个匹配项。

警告仅在第一次出现“\|”时出现,而不是同时出现。

非常感谢任何帮助!

最佳答案

您收到警告是因为 \|在 Objective-C(或 C 或 C++)中不是有效的转义序列。编译器忽略它,只使用原始 |字符,所以您实际传入的字符串是 @"|(.*)|" .

要获得所需的行为,您必须转义源代码中的反斜杠,以便正则表达式引擎看到文字反斜杠并解释 |字符作为文字而不是交替,例如@"\\|(.*)\\|" .

关于objective-c - iOS 正则表达式 : Unknown escape sequence "\|",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11442101/

相关文章:

ios - 1 个架构 x86_64 的重复符号

ios - Scenekit:两个 SCNNode 之间的角度

c++ - 纯 C 回调函数指针作为 iPhone 委托(delegate)协议(protocol)的一部分?

ios - React-native@0.26.3 需要 react@15.0.2 的对等点,但没有安装

objective-c - var Array 类型的 Swift 类字段被转换为不可变的 NSArray 而不是 NSMutableArray

ios - 如何从 PHAsset 获取原始图像和媒体类型?

regex - 找到匹配项后,Sed 内联替换文本文件中的句子

javascript - Firefox 糟糕的 RegEx 性能

regex - 使用正则表达式将 S00 替换为 SOO

ios - GCDAsyncSocket - 如何写入可变数据?