Я пытаюсь сопоставить определенную фразу, используя regexp, с границами слов, но она не работает должным образом. Что я делаю не так?Использование границы слова в regexp
if (preg_match("~\b(and you[?])\b~", " and you? ")) { echo "success"; }
Не эхо "успех".
Однако с границей слова исключены:
if (preg_match("~(and you[?])~", " and you? ")) { echo "success"; }
Он вторит "успех" по какой-то причине.
Вы использовали '\ b' после' [?] ', Что означает, что после'? 'Должно быть слово char. Возможно, вам нужно '' ~ \ b (и вы [?]) ~ "' Или '" ~ \ b (и вы [?]) (?! \ W) ~ "'? –
Это не соответствует, потому что граница слова после 'you' перед'? 'И после этого нет слова (и, следовательно, границы слова). – apokryfos
@frosty, пожалуйста, проверьте ответы и мои комментарии. Не совсем ясно, какую границу вы ищете. –