読者です 読者をやめる 読者になる 読者になる

Bye Bye Moore

猫マンション建築の野望を胸に零細事業主として資本主義の荒波に漕ぎ出したアラサー男の技術メモ

非欲張りな量指定子をつかうと、パターンマッチの範囲を限定できる

非欲張りな量指定子をつかうと、パターンマッチの範囲を最初のものだけに限定することができます。
局面によっては非常に有用です。

実際のところ

たとえば、次のような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>' ]
*/