1. ホーム
  2. regex

[解決済み] 正規表現における「lazy」「greedy」の意味とは?

2022-03-15 14:04:38

質問

この2つの用語をわかりやすく言うと?

どのように解決するのですか?

貪欲な人は、できるだけ多くのものを消費します。からの http://www.regular-expressions.info/repeat.html というHTMLタグをマッチングさせようとする例を見てみましょう。 <.+> . 次のようなものがあったとします。

<em>Hello World</em>

と思うかもしれませんが <.+> ( . というのは 改行以外の文字 + とは 1つまたは複数の ) にのみマッチします。 <em></em> しかし、実際には非常に貪欲で、最初の < から最後の > . これはつまり <em>Hello World</em> の代わりに、あなたが望んだものを表示します。

遅延させること( <.+?> )で防ぐことができます。を追加することで ? の後に + を繰り返すように指示します。 できるだけ少ない回数で ということで、最初の > に遭遇したら、そこでマッチングを止めたい。

をダウンロードすることをお勧めします。 RegExr このツールは、正規表現を探求するのに役立つ素晴らしいツールです。