在Python正则表达式中,默认情况下,量词是贪婪的,也就是尽可能多地匹配字符。
如果想要将贪婪量词变为非贪婪量词,可以在量词后面添加一个问号(?)。
正则表达式中常见的量词有:
*(零次或多次)= {0,} 表示匹配0-n次
+(一次或多次)= {1,} 表示匹配1-n次
?(零次或一次)= {0,1} 表示匹配0-1次
{m,n} (m次到n次)
例如:
a*b 可以匹配 “b”,“ab”,“aab”,“aaab”,”aaaab” 等
a+b 可以匹配 “ab”,“aab”,“aaab”,”aaaab” 等,但不能匹配“b”
a?b 可以匹配 “b”和“ab”
a{1,3}b 可以匹配 “ab”, “aab“ 和 “aaab“
以下是一个示例,演示如何使用贪婪和非贪婪量词:
xxxxxxxxxximport re text = "apples and bananas" # 贪婪示例greedy_pattern = r"a.*s"greedy_match = re.search(greedy_pattern, text)print(greedy_match.group()) # 非贪婪示例non_greedy_pattern = r"a.*?s"non_greedy_match = re.search(non_greedy_pattern, text)print(non_greedy_match.group()) # 输出结果为:# apples and bananas# apples
xxxxxxxxxx
import re
text = "apples and bananas"
# 贪婪示例
greedy_pattern = r"a.*s"
greedy_match = re.search(greedy_pattern, text)
print(greedy_match.group())
# 非贪婪示例
non_greedy_pattern = r"a.*?s"
non_greedy_match = re.search(non_greedy_pattern, text)
print(non_greedy_match.group())
# 输出结果为:
# apples and bananas
# apples
请注意问号 ?只匹配 0 个或者 1 个,也是贪婪的。
正则表达式付费代写、咨询、答疑解惑,专业、快速、高效帮您解决正则表达式方面的各种问题,可定制各类软件应用程序。
正则学习工作必备在线工具合集
.
^
$
\d
\w
\s
\D
\W
\S
[abc]
[a-z]
[^abc]
aa|bb
?
*
+
{n}
{n,}
{m,n}
(
)
\1
(?:
(?=
(?!
在线客服QQ:543690914,备案号: 苏ICP备15037649号-32。东海县白塔埠镇佳诚电脑经营部版权所有。