次の数量詞は、シナリオ、速度などに関してどのように異なりますか。
?
、??
および?+
すべてが0回または1回一致します。*
、*? and
*+`はすべて0回以上一致します。+
、+?
および++
すべてが1回以上一致します。
?
、*
そして貪欲+
です。??
、*?
そして消極的/怠惰+?
です。?+
、所有*+
格++
です。
これらの用語の意味を理解するのを誰かが助けてくれますか?同じ仕事に対して各量指定子に3つのバリエーションがあるのはなぜですか?
次の数量詞は、シナリオ、速度などに関してどのように異なりますか。
?
、??
および?+
すべてが0回または1回一致します。*
、*? and
*+`はすべて0回以上一致します。+
、+?
および++
すべてが1回以上一致します。?
、*
そして貪欲+
です。??
、*?
そして消極的/怠惰+?
です。?+
、所有*+
格++
です。これらの用語の意味を理解するのを誰かが助けてくれますか?同じ仕事に対して各量指定子に3つのバリエーションがあるのはなぜですか?
文字列を取る
aaaab
次の正規表現がどのように一致するかを確認してください。
Regex Submatches
group 1 group 2 group3
(a?)(a*)(ab) a aa ab
(a??)(a*)(ab) aaa ab
(a?+)(a*)(ab) a aa ab
(a*)(a?)(ab) aaa ab
(a*?)(a?)(ab) aa a ab
(a*+)(a?)(ab) aaaa <Match fails!>
(a+)(a*)(ab) aaa ab
(a+?)(a*)(ab) a aa ab
(a++)(a*)(ab) aaaa <Match fails!>
説明:
a?
1つを一致させようとしa
ますが、一致全体が成功するために必要な場合は、何も一致しないように準備されています。a??
何も一致させようとしませんが、一致a
全体が成功するために必要な場合は、1つを一致させる準備ができています。a?+
1つを一致させようとしa
ます。それが可能であれば、全体的な試合が成功するためにそれが必要だった場合、何も試合に戻ることはありません。と一致しない場合a
でも、喜んで一致するものはありません。a*
できるだけ多くa
のsを一致させようとしますが、一致全体が成功するために必要な場合でも、より少ないa
sを一致させる準備ができています。a*?
何も一致させようとしませんが、一致a
全体が成功するために絶対に必要な数だけ一致するように準備されていますが、それ以上は一致しません。a*+
a
できるだけ多くのsを一致させようとします。それが可能であれば、全体的な一致が成功するために必要な場合は、一致する秒数が少なくなることはありません。a
ただし、1つでも一致しない場合はa
、何も一致しません。a+
できるだけ多くのsを一致させようとしますが、一致全体を成功させるために必要な場合は、より少ないs(ただし少なくとも1つ)a
を一致させる準備ができています。a
a+?
1つだけを一致させようとしますが、一致全体を成功させるために絶対に必要なa
数だけ一致するように準備されていますが、それ以上は一致しません。a
a++
a
できるだけ多くのsを一致させようとします。それが可能であれば、全体的な一致が成功するために必要な場合は、一致する秒数が少なくなることはありません。a
単一でも一致しない場合a
、正規表現は失敗します。