XCode的Find Navigator使用什么正则表达式引擎

Log*_*Rex 5 regex xcode pcre icu

关于 XCode 的 Find Navigator 使用的 RegEx 引擎,Apple、Google 搜索和 StackOverflow 的文档不存在,这使得编写表达式非常困难。例如,我尝试进行负向后查找,但它不起作用。有谁知道隐藏的文档在哪里?

Ben*_*man 2

快速回答:ICU 引擎。(这也与NSRegularExpression使用的引擎相同)。

更长的版本:

PCRE 和 ICU 这两个领先的正则表达式引擎之间的主要区别在于 PCRE 在其表达式中支持递归。一个简单的例子是:

\w{3}\d{3}(?R)?

完全匹配aaa111bbb222。但是,将其输入 Xcode (7.1.1) 正则表达式查找字段会产生此警报:

查找失败:不是有效的正则表达式。

这让我们相信 Xcode 正在使用 ICU 引擎来支持其搜索和替换功能。这是有道理的,因为 Xcode 可能构建NSRegularExpressionlibicucore.