正規表現を業務で使う過程で、greedy matchingとlazy matchingの違いについて、以下を参考に調べる機会がありました。
http://blog.mariusschulz.com/2014/06/03/why-using-in-regular-expressions-is-almost-never-what-you-actually-want
例えば abc123
というインプットがあったときに、 [a-z]+\d+
のようにすると、greedy matchingの性質によって abc123
全体がマッチします。これは理解できます。
これに対し、lazy matchingとなるよう [a-z]+?\d+?
のようにすると、 abc1
だけがマッチするそうですが、このときマッチするのが c1
とはならない理由がよくわかりません。
lazy matchingの場合、どのような仕組みでマッチするかどうかを判断しているのでしょうか?
回答1件
あなたの回答
tips
プレビュー
バッドをするには、ログインかつ
こちらの条件を満たす必要があります。
2017/08/21 00:31