Xcode中的RegExp:是否从结果集中排除匹配项?
正在寻找在Xcode的“Project Find”中使用的适当正则表达式语法,以获取所有出现的“nslog”而不是“//nslog”。可以独立完成每个搜索,但不确定如何“链接”它们 我认为您能找到的最接近的方法是搜索例如Xcode中的RegExp:是否从结果集中排除匹配项?,regex,xcode,Regex,Xcode,正在寻找在Xcode的“Project Find”中使用的适当正则表达式语法,以获取所有出现的“nslog”而不是“//nslog”。可以独立完成每个搜索,但不确定如何“链接”它们 我认为您能找到的最接近的方法是搜索例如[^/]NSLog——它将找到NSLog,但不会找到//NSLog。当然,它仍然会找到//NSLog,这可能对您有效,也可能对您无效。正则表达式表示“不遵循”的正常方式是使用(?构造。因此,有可能 (?<!//)nslog 但是,这并不意味着与前面的模式相同 而不是说必须不
[^/]NSLog
——它将找到NSLog
,但不会找到//NSLog
。当然,它仍然会找到//NSLog
,这可能对您有效,也可能对您无效。正则表达式表示“不遵循”的正常方式是使用(?构造。因此,有可能
(?<!//)nslog
但是,这并不意味着与前面的模式相同
而不是说必须不遵循两条斜线,它意味着前面必须有两条非斜线。这些实际上是不同的;考虑在开始时出现的<代码> NSLoG 的情况。第一种模式会成功,第二种模式会失败。
最后,如果使用斜杠作为模式定界符,也就是说,它包围并引用模式,那么您必须执行以下操作之一:
选择一个备用模式定界符;例如,#(?如果允许您选择一个八进制作为模式周围的引用定界符
对内部使用的任何斜杠进行反击,并诱发LTS(倾斜牙签综合症);例如,(?)
使用某种形式的数字转义,例如对于八进制使用\057
,对于十六进制使用\x2F
;例如,(?)
希望这有帮助。+1(?是正确答案。根据,XCode使用ICU库进行正则表达式搜索,根据使用[^pattern]不起作用,但反向查找起作用。此外,它还说必须用反斜杠来避开正斜杠。不适用于(在XCode中使用的)@Drackir:在发布上述答案之前,我确实用Xcode 3.2.3测试了这个问题,它似乎工作正常。你怎么会认为它不工作?你真的尝试过吗?我收回我的评论:P我测试过,但我认为光标一定在我的测试行下方,并且没有循环到开头。对不起![^/]对我来说是有效的,尽管它很容易受到tchrist在下面提到的内容的影响(关于在行首没有找到它们)。@Drackir:没问题-你让我担心了一会儿。;-)
[^/][^/]nslog