贪婪匹配
# 贪婪匹配
问:正则表达式中 .* 与 .*? 的区别
答:.* 是贪婪匹配,.*?是非贪婪匹配
比如说匹配输入串A: 101000000000100
- 使用 1.*1 将会匹配到1010000000001, 匹配方法: 先匹配至输入串A的最后, 然后向前匹配, 直到可以匹配到1, 称之为贪婪匹配。
- 使用 1.*?1 将会匹配到101, 匹配方法: *匹配下一个1之前的所有字符, 称之为非贪婪匹配。
'101000000000100'.match(/1.*1/g) // ["1010000000001"]
'101000000000100'.match(/1.*?1/g) // ["101"]
1
2
2
编辑 (opens new window)
上次更新: 2025/07/17, 07:17:44