非貪欲マッチがあるという事は、貪欲マッチもあるの?

はい、正規表現には非貪欲マッチとは対照的な貪欲マッチもあります。

非貪欲マッチ(*?, +?, ??, {m,n}?など)は、できるだけ短いマッチを見つけようとするものであり、対象のパターンが最初にマッチする位置から、最初の一致を見つけるまでマッチを拡張しません。

一方、貪欲マッチ(*, +, ?, {m,n}など)は、できるだけ長いマッチを見つけようとするものであり、対象のパターンが最初にマッチする位置から、最後の一致を見つけるまでマッチを拡張します。

例えば、.*は貪欲マッチであり、可能な限り多くの文字をマッチさせようとします。一方、.*?は非貪欲マッチであり、可能な限り少ない文字でマッチさせようとします。

貪欲マッチと非貪欲マッチは、正規表現の挙動を制御する際に重要な概念です。場合によっては、どちらを使うかで正しい結果を得られるかどうかが変わることがあります。

未分類

Posted by ぼっち