我正在使用正则表达式单词边界\ b,我正在尝试匹配以下foo
中的$sentence
但结果不是我需要的,underscore
正在杀死我,我想要下划线是字形边界就像连字符或空格:
$sentence = "foo_foo_foo foo-foo_foo";
X X X YES X X
预期:
$sentence = "foo_foo_foo foo-foo_foo";
YES YES YES YES YES YES
我的代码:
preg_match("/\bfoo\b/i", $sentence);
你必须创建DIY边界。
(?:\b|_\K)foo(?=\b|_)
这样做你想要的吗?:
preg_match_all("/foo/i", $sentence, $matches);
var_dump($matches);