文字列内の一致する単語全体を置換する
PHP の str_replace() 関数を使用して文字列内の特定の単語を置換しようとすると、単語全体ではなく単語の一部を置き換えます。この望ましくない動作は、置換される単語または語句が長い単語内にある場合に発生する可能性があります。
この問題を解決するには、正規表現を使用できます。正規表現を使用すると、検索と置換のプロセスをより詳細に制御できます。単語の境界に一致する b メタキャラクターを組み込むことで、一致する単語全体のみが置換されるようにすることができます。
解決策:
$text = preg_replace('/\bHello\b/', 'NEW', $text);
このコードでは、bHellobは、単語の境界で示される、単語「Hello」の完全な出現に一致します。これにより、「Hello」が独立した単語である場合にのみ置換が行われるようになります。
Unicode に関する考慮事項:
文字列に UTF-8 文字が含まれる場合、「u」以下に示すように、(Unicode) 修飾子を正規表現に追加する必要があります。
$text = preg_replace('/\bHello\b/u', 'NEW', $text);
この修飾子により、次のことが保証されます。非ラテン文字は単語の境界として誤って解釈されず、正確に置換されます。
以上がPHP と正規表現を使用して文字列内の単語全体を置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。