58人参与 • 2025-07-02 • 正则表达式
a*
,在字符串 "aaaa"
中,它会匹配整个 "aaaa"
,因为它会尽可能多地匹配 a
字符。import re text = "aaaa" pattern = re.compile(r'a*') result = pattern.search(text) print(result.group()) # 输出: aaaa
a+
在字符串 "aaaa"
中,同样会匹配整个 "aaaa"
,不过它至少要匹配一次 a
字符。import re text = "aaaa" pattern = re.compile(r'a+') result = pattern.search(text) print(result.group()) # 输出: aaaa
colou?r
可以匹配 "color"
和 "colour"
,u?
表示 u
这个字符可以出现零次或者一次。import re text1 = "color" text2 = "colour" pattern = re.compile(r'colou?r') result1 = pattern.search(text1) result2 = pattern.search(text2) print(result1.group()) # 输出: color print(result2.group()) # 输出: colour
n
次。a{2,}
在字符串 "aaaa"
中,会匹配整个 "aaaa"
,因为它要求 a
至少出现 2 次。import re text = "aaaa" pattern = re.compile(r'a{2,}') result = pattern.search(text) print(result.group()) # 输出: aaaa
n
次,但不超过 m
次。a{2,3}
在字符串 "aaaa"
中,会匹配前三个 a
,即 "aaa"
,因为它尽量在 2 到 3 次的范围内进行最大匹配。import re text = "aaaa" pattern = re.compile(r'a{2,3}') result = pattern.search(text) print(result.group()) # 输出: aaa
贪婪字符会尽可能多地去匹配符合条件的字符,直到无法再匹配为止,因此会导致回溯问题,因此在实际应用中,应该避免使用贪婪字符。
如果想让贪婪字符变为非贪婪模式,只需在其后加上 ? 即可,如:*?
、+?
、??
、{n,}?
、{n,m}?,
此模式将会尽可能少的去匹配字符,但是可能无法达到预期结果,大家酌情选择。
到此这篇关于正则表达式中常见的贪婪词有哪些举例的文章就介绍到这了,更多相关正则表达式贪婪词内容请搜索代码网以前的文章或继续浏览下面的相关文章希望大家以后多多支持代码网!
您想发表意见!!点此发布评论
版权声明:本文内容由互联网用户贡献,该文观点仅代表作者本人。本站仅提供信息存储服务,不拥有所有权,不承担相关法律责任。 如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 2386932994@qq.com 举报,一经查实将立刻删除。
发表评论