ホームページ > バックエンド開発 > PHPチュートリアル > 正規表現を使用して文字列内の単語全体を置換するにはどうすればよいですか?

正規表現を使用して文字列内の単語全体を置換するにはどうすればよいですか?

Patricia Arquette
リリース: 2024-12-09 00:59:10
オリジナル
845 人が閲覧しました

How Can I Replace Whole Words in a String Using Regular Expressions?

文字列内の単語全体の一致の検索と置換

文字列を操作する場合、特定の単語や語句を置換する必要があるのが一般的です。ただし、str_replace() のような文字列置換関数を単に使用すると、単語内の位置に関係なく、出現するパターンがすべて置換されるため、予期しない結果が生じる可能性があります。

これに対処するには、正規表現を使用して、パターンの単語全体のインスタンスのみに一致します。この鍵となるのは、「b」で示される単語境界メタ文字です。

正規表現の使用

単語全体の一致のみを置換するには、次の正規表現パターンを使用します。 :

/\bHello\b/
ログイン後にコピー

内訳は次のとおりです。パターン:

  • "/" (区切り文字): 正規表現の開始と終了を示します。
  • "b" (単語境界) : 単語の先頭または末尾に一致します。
  • "Hello" (パターン): 一致させたい単語。
  • "/" (区切り文字): 正規表現の終わりを示します。

実装例

次の PHP について考えてみましょうコード:

<?php
$text = "Hello hellol hello, Helloz";
$newtext = preg_replace('/\bHello\b/', 'NEW', $text);
echo $newtext;
?>
ログイン後にコピー

説明:

  • preg_replace() 関数は、正規表現の置換を実行するために使用されます。
  • 正規表現式 /bHellob/ は、「Hello」に一致する単語全体を検索して置換するために使用されます。 "NEW".
  • 結果は $newtext に保存されます。

出力:

NEW hello1 hello, Helloz
ログイン後にコピー

Unicode に関する考慮事項

テキストに Unicode 文字が含まれている場合は、以下を追加する必要がある場合があります。非ラテン文字を正しく処理するための正規表現への「u」修飾子:

$newtext = preg_replace('/\bHello\b/u', 'NEW', $text);
ログイン後にコピー

以上が正規表現を使用して文字列内の単語全体を置換するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
著者別の最新記事
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート