ホームページ > バックエンド開発 > PHPチュートリアル > 正規表現における ` ` と `*` の量指定子の違いは何ですか?

正規表現における ` ` と `*` の量指定子の違いは何ですか?

Barbara Streisand
リリース: 2024-12-17 05:04:26
オリジナル
182 人が閲覧しました

What's the Difference Between ` ` and `*` Quantifiers in Regular Expressions?

正規表現における ' ' と '*' 数量子の区別を理解する

PHP で正規表現 (正規表現) を使用して作業する場合、 preg_match 関数を使用する場合、プログラマは 2 つの一般的な量指定子「 」と「*」に遭遇する可能性があります。これらの数量子は、一致内でパターンが何回出現できるかを指定します。ただし、それらの動作には微妙な違いがあります。

' ' と '*' の違い:

  • ' ' (プラス数量詞): 1 つ以上と一致します。
  • '*' (スター数量子): 先行する式の 0 個以上の出現と一致します。式 (出現なしを含む)。

貪欲なマッチングと貪欲でないマッチング:

デフォルトでは、量指定子は貪欲です。これは、式を満たす最大の部分文字列と一致し、できる限り多くの文字を消費することを意味します。たとえば、正規表現 a.*b を使用すると、量詞「.」が使用されるため、文字列「abab」全体と一致します。

量指定子を貪欲にしない:

「?」の追加量指定子の動作が「貪欲」または「怠け者」に変更された後の文字 (?)。これにより、量指定子は、文字列の末尾から開始して先頭に向かって、式を満たす最小の部分文字列と一致するように強制されます。

  • a.*?b は、「abab」内の「ab」と一致します。 " なぜなら、星の数量指定子はungreedy.

例:

次の文字列を考えてみましょう: "abab"

  • a.*?b が一致します: " ab" (貪欲でない)
  • a.*b が一致する: "abab" (貪欲)

補足:

  • 量指定子 ' ' と '*' の微妙な違いは、量化された式が複数回出現すると明らかになる
  • 効率的で正確な正規表現を作成するには、これらの量指定子を理解することが不可欠です。
  • Regexr などのオンライン ツールは、正規表現のテストと視覚化に役立ち、量指定子の動作を簡単に把握できます。

以上が正規表現における ` ` と `*` の量指定子の違いは何ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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