HTMLの文字と一致させようとしています。andには次の3つのタイプがあります。
and, &, &
私は次のコードを使用しています:
(&|&|\band\b)
上記のコードの問題は次のとおりです。&で始まる単語にも一致します。
i.e. © €
以下も試してみましたが、本文の先頭と末尾の文字が一致していません。
(\s&\s|&|\band\b)
どうですか
(&)|&(?!\w)|\band\b
一致するand
、、&
&
一致していません©
€
[A-Za-z0-9_]
真ん中のものは、単語文字( )が後に続かないアンパサンドに一致します
(&|&|\band\b)
良いスタートです。結果セットを減らして続行します。一致しない場合は詳細を指定する必要があります。正規表現に必要なものを伝える魔法の区切り文字はありません。ですから、問題は、受け入れたくないものから受け入れたい「&」をどのように伝えることができるかということです。
単語を開始しない場合は、すべての「&」を受け入れたいと思うかもしれません。それで:
(&[^a-zA-Z]|&|\band\b)
この正規表現を試してください:
$regex = '/\b((\&(amp;)?)|(and))\b/i';