1 (.*?),(.+?) 的作用
解析:
. 的作用为匹配所有字符(除换行符)
* 的作用为匹配前面的子表达式零次或多次
? 的作用为匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
由于*,+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配
例如:
let regp = /(\/(.*)\/)/
console.log(regp.exec('/sasd/asd/asddsa'))
匹配结果为 sasd/asd
let regp = /(\/(.*?)\/)/
console.log(regp.exec('/sasd/asd/asddsa'))
匹配结果为 sasd
没有?为贪婪匹配,有匹配回溯,寻找最大的匹配结果,加上?之后为非贪婪匹配,匹配第一个结果(最小结果)