正则表达式:试图匹配两个字符串*没有*中间的某个字符
Regex: trying to match two strings *without* a certain char in between
我正在尝试匹配一行 w/"function" 后跟 "insert" 作为一个完整的单词, 没有“$”之间。这意味着它应该匹配
function static insert()
但不是
function insertRecord($insert)
我试过否定 lookahead/behind 例如:
function.*(?!$).*\binsert\b
但什么都没有。
我一直在 Ubuntu 15.10 上的 grep 2.6.3 和 PhpStorm 上尝试这个(后者我存货较少)。是的,我一直将我的正则表达式放在 grep 的单引号中。我也试过https://www.regex101.com,这似乎同意,我用错了。我什至在测试网站上试过缩写版本,但我不知道
的哪一部分
function.*(?!$)
没看懂
在我所有的实验中,一个一致的问题是它总是在 "insert".
之前出现“$”的行上
试试这个:
function[^$]*\binsert\b
这只是使用否定字符 class [^$]
来限制字符之间的字符以禁止任何美元符号。
您已经知道在 "insert" 周围需要词边界 \b
。
我正在尝试匹配一行 w/"function" 后跟 "insert" 作为一个完整的单词, 没有“$”之间。这意味着它应该匹配
function static insert()
但不是
function insertRecord($insert)
我试过否定 lookahead/behind 例如:
function.*(?!$).*\binsert\b
但什么都没有。
我一直在 Ubuntu 15.10 上的 grep 2.6.3 和 PhpStorm 上尝试这个(后者我存货较少)。是的,我一直将我的正则表达式放在 grep 的单引号中。我也试过https://www.regex101.com,这似乎同意,我用错了。我什至在测试网站上试过缩写版本,但我不知道
的哪一部分function.*(?!$)
没看懂
在我所有的实验中,一个一致的问题是它总是在 "insert".
之前出现“$”的行上试试这个:
function[^$]*\binsert\b
这只是使用否定字符 class [^$]
来限制字符之间的字符以禁止任何美元符号。
您已经知道在 "insert" 周围需要词边界 \b
。