如何匹配避免前缀的模式?

时间:2016-05-26 17:17:23

标签: pattern-matching pcre prefix

我正在尝试匹配模式,但是避免使用前缀 - 后面的负面看法不起作用(由于剩余模式的贪婪?) - 将不胜感激!

示例:

(?<=procedure\()\s*(?<!ada)\w+\(

预计匹配: 程序( add_test(

但不是: 程序(ada_make(

注意:stackoverflow上的以下帖子没有帮助,因为在我的情况下KEYWORD不是文字(并且/ w +变得贪婪!): How to match a pattern but not prefix How do I match PATTERN but not PREFIX_PATTERN?

以下是regex101的链接,显示匹配项:regex101 test

2 个答案:

答案 0 :(得分:1)

你不需要第二个lookbehind,你可以使用lookahead:

func tableView(tableView: UITableView, editActionsForRowAtIndexPath indexPath: NSIndexPath) -> [AnyObject]? {

答案 1 :(得分:0)

发现问题:如果使用负面看后面(如上所述),应该删除/不使用全局修饰符(默认值:g) 如果删除,上述正则表达式就可以完成工作 - 道歉;看到更好的答案:使用负向前看而不是