非欲張りな量指定子をつかうと、パターンマッチの範囲を最初のものだけに限定することができます。
局面によっては非常に有用です。
実際のところ
たとえば、次のようなhtml文章があったとします。
ここから最初のタグ内容を抽出するケースを考えます。
const str = "<ul><li>a</li><li>b</li></ul>"
通常の”.+”であれば、まぁ、全部キャプチャしちゃいますね。
rgx = /<(.+)>/ rgx.exec(str) /* [ '<ul><li>a</li><li>b</li></ul>', 'ul><li>a</li><li>b</li></ul', index: 0, input: '<ul><li>a</li><li>b</li></ul>' ] */
ここで、非欲張りな量指定子……という奴を使うと、簡単に目標を達成することができます。
rgx = /<(.+?)>/ rgx.exec(str) /* [ '<ul>', 'ul', index: 0, input: '<ul><li>a</li><li>b</li></ul>' ] */