RegEx匹配字符串的一部分,只要下一个字符不是_

Nov*_*ine 2 regex

我敢肯定这是一个简单的正则表达式,但我无法弄清楚我想从Google/SO搜索中得到什么的措辞.

在下面的字符串中,只要下一个字符不是_ (下划线),我想匹配foo

Lorem存有DOL foo_或坐阿梅德,consectetur UT aliquip前EA commodo consequat.Duis aute ir foo ure dolor in rephenderit in vol foo_ uptate velit esse cillum dolore eu sunt in culpa qui offic foo ia deserunt mollit anim id est laborum

我应该在这里得到3个匹配所有foo并忽略其他两个foo_实例.到目前为止我已经得到了这个;

foo[^_]
Run Code Online (Sandbox Code Playgroud)

哪个回来了;

[0] => Array
    (
        [0] => foo 
        [1] => foou
        [2] => fooi
    )
Run Code Online (Sandbox Code Playgroud)

这匹配foo之后的一个字符,这不是我想要的.我不知道如何不同时匹配下一个角色,因为它一定不能和强调...请教育我!

作为参考,这是为了在文本编辑器中进行匹配,所以我稍微局限于我可以做的事情,这就是为什么我需要匹配那个确切的字符串而没有别的.

Avi*_*Raj 7

您需要使用负前瞻断言.

foo(?!_)
Run Code Online (Sandbox Code Playgroud)

上述否定前瞻声明匹配foo后面不会出现下划线符号.

DEMO