(.*?),(.+?) 的理解

1 (.*?),(.+?) 的作用

解析:
. 的作用为匹配所有字符(除换行符)
* 的作用为匹配前面的子表达式零次或多次
? 的作用为匹配前面的子表达式零次或一次,或指明一个非贪婪限定符
由于*,+限定符都是贪婪的,因为它们会尽可能多的匹配文字,只有在它们的后面加上一个?就可以实现非贪婪或最小匹配
例如:

 let regp = /(\/(.*)\/)/
 console.log(regp.exec('/sasd/asd/asddsa'))

匹配结果为 sasd/asd

 let regp = /(\/(.*?)\/)/    
 console.log(regp.exec('/sasd/asd/asddsa'))

匹配结果为 sasd
没有?为贪婪匹配,有匹配回溯,寻找最大的匹配结果,加上?之后为非贪婪匹配,匹配第一个结果(最小结果)

猜你喜欢

转载自blog.csdn.net/qq_41494464/article/details/88038064