ホームページ > 記事 > ウェブフロントエンド > PHP の通常のゼロ幅アサーションの使用方法の詳細な説明
今回は、PHP の通常のゼロ幅アサーションの使用について詳しく説明します。PHP の通常のゼロ幅アサーションを使用する際の 注意事項 は何ですか?実際のケースを見てみましょう。
この記事の例では、正規表現のゼロ幅アサーションについて説明します。参考のために皆さんと共有してください。詳細は次のとおりです:
はじめに
① ゼロ幅アサーションとは何ですか、なぜゼロ幅アサーションを使用する必要があるのですか② ゼロ幅アサーションの使用方法アサーション
コンセプト
ほとんどの場所で定義されているゼロ幅アサーションは、特定のコンテンツ(ただし、これらのコンテンツは含まない)の前後のものを検索するために使用されます。つまり、b のようなアンカー機能があります。 ^ $ < > は、特定の条件を満たす必要がある場所 (つまりアサーション) を指定するために使用されるため、ゼロ幅アサーションとも呼ばれます。私の理解では、限られた位置で肯定先読みアサーション
肯定先読みアサーションとは、文字列内の対応する位置の前を検索して一致させ、exp の前の位置を一致させるには (?=exp) を使用します。 例$str="abcgwcab"; $parent='/bc(?=gw)/'; $str=preg_match($parent,$str,$match); var_dump($match); /** 输出结果: int 1 array (size=1) 0 => string 'bc' (length=2) */分析: まず、文字列「abcgwcab」内の gw 位置を見つけ、それが true であるとアサートし、次に bc と一致します。正規表現が $parent='/bc(?=gw)ca/' のように記述されている場合、一致は失敗します。
反先読みアサーション
反先読みアサーションとは何ですか? exp が続かないものと一致させるには (?!exp) を使用します。 例:$str="abcgwcab"; $parent='/bc(?!ww)gw/'; $str=preg_match($parent,$str,$match); var_dump($str); var_dump($match); /** 输出: int 1 array (size=1) 0 => string 'bcgw' (length=4) */分析: まず文字列に bc が含まれているかどうかを判断し、次に ww が続くかどうかを判断し、最後に gw と一致します。逆アサーションの前後に他の一致条件を追加できることがわかります。
フロントアサーションとポストアサーション
ポストアサーションとは? 文字列内の対応する位置(?<=exp)がexpの後の位置と一致した後で検索して照合することです。$str="abcgwcab"; $parent='/(?<=gw)ca/'; $str=preg_match($parent,$str,$match); var_dump($str); var_dump($match); /** 输出结果: int 1 array (size=1) 0 => string 'ca' (length=2) */分析: 最初のステップでは、文字「abcgwcab」に gw が含まれているかどうかを確認します。返された結果は true であり、次に 2 番目のステップに進み、gw の後に ca があるかどうかを確認します。反事後アサーション
反事後アサーションとは? 1 つは bc なので false を返します練習問題
例 1:
d+(?=abc)
文字列に 'abc' が含まれるかどうか、および文字列に 1 つ以上の数字が含まれるかどうかを判断します。前に例 2:
(?<=dd)w
d+(?=abc)
判断一个字符串中是否包含'abc',且其前面是否包含一个或多个数字例2:
(?<=dd)w
判断字符串中是否存在连续两个数字,且其后面包含一个字母例3:
d{3} (?!55)
判断字符串中是否包含连续三个数字,且三个数字后面不是55例4:
例 3:(?<!ac)wd
文字列内に 2 つの連続する数字とその後に文字があるかどうかを判断しますd{3 } ( ?!55)
文字列に 3 つの連続する数字が含まれており、その 3 つの数字の後に 55 が続いていないかどうかを判断します例 4:
要約(?<!ac)wd
どちらかを決定してください 文字列に文字と数字の組み合わせが含まれており、その前に ac が付いていませんか述語と事後アサーションの違いは何ですか? プリエンプティブ アサーションは、アサーションは他の正規表現の後にあり、アサーションはアサーションの前の正規表現であり、アサーションは他の正規表現の前にあります。正規表現
PS: ここでは、参考のために 2 つの非常に便利な正規表現ツールを提供します:
🎜🎜🎜🎜🎜この記事の事例を読んだ後は、この方法を習得したと思います。さらに興味深い情報については、php 中国語 Web サイトの他の関連記事に注目してください。
推奨読書:
正規表現検証を使用してパスワードの強度を判断し、プロンプトを表示します
以上がPHP の通常のゼロ幅アサーションの使用方法の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。