Я использую регулярное выражение границы слова \ 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);