PHP Regex Word Boundary排除下划线_

Sun*_*nny 1 php regex localization word-boundary preg-match

我正在使用正则表达式字边界\ b,我正在尝试匹配foo以下$sentence但结果不是我需要的,underscore是杀了我,我想要下划线是字边界就像连字符或空格:

$sentence = "foo_foo_foo foo-foo_foo";
              X   X   X  YES  X   X
Run Code Online (Sandbox Code Playgroud)

预期:

$sentence = "foo_foo_foo foo-foo_foo";
             YES YES YES YES YES YES
Run Code Online (Sandbox Code Playgroud)

我的代码:

preg_match("/\bfoo\b/i", $sentence);
Run Code Online (Sandbox Code Playgroud)

hwn*_*wnd 7

你必须创建DIY边界.

(?:\b|_\K)foo(?=\b|_)
Run Code Online (Sandbox Code Playgroud)