贪婪匹配与非贪婪匹配
贪婪匹配
贪婪匹配 (Greedy Matching):
- 贪婪匹配会尽可能多地匹配字符。
- 当正则表达式引擎遇到量词时,它会尝试匹配尽可能多的字符,直到无法继续匹配为止。
- 这是正则表达式的默认行为。
贪婪匹配:
- 正则表达式:
a*b* - 匹配结果:
aabbaabb(整个字符串) - 解释:
a*匹配尽可能多的a,b*匹配尽可能多的b。
非贪婪匹配
非贪婪匹配 (Non-Greedy/Lazy/Reluctant Matching):
- 非贪婪匹配会尽可能少地匹配字符。
- 当正则表达式引擎遇到量词时,它会尝试匹配尽可能少的字符,只要满足量词的最小要求即可。
- 通过在量词后面添加
?来启用非贪婪匹配模式。
非贪婪匹配:
- 正则表达式:
a*?b*? - 匹配结果:`` (空字符串)
- 解释:
a*?匹配尽可能少的a(0 个),b*?匹配尽可能少的b(0 个)。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 小chen妙妙屋!
评论



