正则表达式:尝试匹配两个字符串*,而不是*之间的某个字符串

时间:2015-12-24 20:15:52

标签: regex grep negative-lookahead

我正在尝试匹配一行w /“function”后跟“insert”作为整个单词,之间有“$”。这意味着它应匹配

function static insert()

但不是

function insertRecord($insert)

我已经尝试过负面前瞻/后面,例如:

function.*(?!\$).*\binsert\b

但没有。

我一直在Ubuntu 15.10上的grep 2.6.3和PhpStorm上尝试这个(后者我减少了库存)。是的,我一直把我的正则表达式用于grep的单引号。我也尝试https://www.regex101.com,似乎同意,我使用这个错误。我甚至在测试站点上尝试过缩写版本,但我不知道

的哪个部分
function.*(?!\$)

它不明白。

我所有实验中一直存在的问题是,它一直在“插入”之前的“$”行上打击。

1 个答案:

答案 0 :(得分:2)

试试这个:

function[^$]*\binsert\b

这只是使用一个否定的字符类[^$]来限制不允许任何美元符号之间的字符。

您已经发现在“插入”周围需要单词边界\b