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の(そしてあなた[?])(?!\ワット)〜"'? –
you'が ''の前で後は?ワード境界ので、一致していない 'と全く言葉(したがってなしワード境界)はその後ありません。 – apokryfos
@frosty、回答と私のコメントを確認してください。あなたが探している言葉の境界がどんなものなのかは本当にはっきりしていません。 –