О, вы так близко:)
Я думаю, вы не до конца поняли границу слова \b
.
Как \ b работает в регулярном выражении
В начале строки оно будет следить за тем, чтобы ваше слово начиналось с символов, следующих за ним. \bmouse
будет соответствовать каждому слову, начинающемуся с мыши.
Regex: '/\bmouse/'
Matches: Mouse, MouseMouse, MouseCat, Mouse...
Fails: CatMouse, MyMouse, EtcMouse
Если после строки ставится \b
, это гарантирует, что слово не будет продолжено.
Regex: '/mouse\b/'
Matches: Mouse, MouseMouse, CatMouse, ...Mouse
Fails: MouseCat, MouseHouse, MouseEtc
Установка оба вместе гарантируют, что у вас есть вложенное слово
Regex: '/\bmouse\b/'
Matches: Mouse
Fails: NoMouse, MouseNo, NoMouseNo
Результаты
\b
в основном говорит вам только о комбинированном слове. Если вы хотите что-то дополнительное, вы должны упомянуть это. Вероятно, вам нужно следующее регулярное выражение:
cat(?=[.,\ ]mouse\b)
Примечание. Первое \b
было заменено символами, которые вы хотите отфильтровать.