正規表現(php)を使用して、アルファベット以外の文字(大文字と小文字は区別されません)が続く特定の文字列を検索しようとしています。Regex:文字列の後に英数字以外の文字列を見つける方法
Example String:
Doggy is a lazy dog! Doggy. Dog and I.
Search String: Dog
Expected Result:
Doggy is a lazy <a href="">dog</a>! Doggy. <a href="">Dog</a> and I.
Dogの部分文字列の後ろにアルファベット以外の文字がないため、「Doggy」と一致しないはずです。
私はこれらの行に沿って何かをしようとしていますが、私が欲しいものを正確にやっていません。
preg_replace("/(dog)[^a-zA-Z0-9\s\p]/i/", "", $str);
はなぜ除外する文字のリストで '\のS'を持っています?そうすれば、「犬」とそれに続くスペースは一致しません。 – Barmar
実際には**正確な単語の一致**を検索しようとしていますか? 「文字列の後に非英数字が続く」ではありませんか? –
単語境界パターン '\ b'を使うのはどうですか? – Barmar