PHP正規表現でバックスラッシュをエスケープするにはどうすればよいですか?

Barbara Streisand
リリース: 2024-11-16 04:20:03
オリジナル
402 人が閲覧しました

How to Escape Backslashes in PHP Regular Expressions?

PHP 正規表現でのバックスラッシュのエスケープ

PHP 正規表現パターンでバックスラッシュをエスケープするには、3 つのバックスラッシュ (\) のいずれかを使用できます。または 4 つのバックスラッシュ (\\)。どちらのオプションでも一致は成功しますが、解釈と使用法には微妙な違いがあります。

テスト ケース:

次のテスト ケースを考えてみましょう:

// TEST 01: (3 backslashes)
$pattern = "/^[\\]{1,}$/";
$string = '\';

// ----- RETURNS A MATCH -----

// TEST 02: (4 backslashes)
$pattern = "/^[\\]{1,}$/";
$string = '\';

// ----- ALSO RETURNS A MATCH -----
ログイン後にコピー

どちらの場合も、一致が返され、バックスラッシュをエスケープするために 3 つと 4 つのバックスラッシュの両方を使用できることが示されます。

解釈と使用法:

  • 3 つのバックスラッシュ (\): 3 つのバックスラッシュを使用すると、パターンは 1 つのバックスラッシュ () 文字と一致すると解釈されます。ただし、パターン内の次の文字もバックスラッシュである場合、3 つのバックスラッシュだけを使用してリテラルのバックスラッシュを照合することはできません。
// Matches a single backslash
preg_match( '/\\/', '\' );      // 1

// Fails to match a literal backslash followed by a backslash
preg_match( '/\\\s/', '\s' );   // 0
ログイン後にコピー
  • 4 つのバックスラッシュ (\\): 一方、バックスラッシュを 4 つ使用すると、後続の文字に関係なく、常にリテラルのバックスラッシュと一致します。これは、4 番目のバックスラッシュが 3 番目のバックスラッシュをエスケープし、リテラル文字にするためです。
// Matches a literal backslash followed by any character
preg_match( '/\\\s/', '\s' );   // 1
ログイン後にコピー

推奨事項:

これらの観察に基づくと、次のようになります。バックスラッシュとの一致を求める場合は、正規表現パターンで常に 4 つのバックスラッシュ (\\) を使用することをお勧めします。このアプローチにより、パターン マッチングの一貫性と予測可能性が保証されます。

以上がPHP正規表現でバックスラッシュをエスケープするにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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