正则有点贪...

333 阅读1分钟

正则贪婪

  • 何为贪婪模式 ==>> 尽可能多的匹配(可以对比一下下面正则, 因为没有问号, 所以很贪, 匹配第一个是, 最后一个吧)
 const str ='你是老王吧我是小明吧'

 str.match(/是.*吧/)[0] 
 // '是老王吧我是小明吧'
  • 懒惰模式 ==>> 尽可能少的匹配(因为有问号, 所以他懒, 就近匹配)
 const str ='你是老王吧我是小明吧'
 
 str.match(/是.*?吧/)[0]
 // '是老王吧'
 
 str.match(/是(.*?)吧/g)
 // ['是老王吧', '是小明吧']
 
 str.match(/是(.*?)吧/g).map(item => item.match(/是(.*)吧/)[1])
 // ['老王', '小明']

具体. * 啥意思 见正则表达式速查

7.webp