Python正则 贪婪与非贪婪

在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“

以下是一个示例,演示如何使用贪婪和非贪婪量词:

请注意问号 ?只匹配 0 个或者 1 个,也是贪婪的。

正则表达式在线测试工具
人工服务

正则表达式付费代写、咨询、答疑解惑,专业、快速、高效帮您解决正则表达式方面的各种问题,可定制各类软件应用程序。

联系客服
正则表达式基础语法
. - 除换行符以外的所有字符。
^ - 字符串开头。
$ - 字符串结尾。
\d,\w,\s - 匹配数字、字符、空格。
\D,\W,\S - 匹配非数字、非字符、非空格。
[abc] - 匹配 a、b 或 c 中的一个字母。
[a-z] - 匹配 a 到 z 中的一个字母。
[^abc] - 匹配除了 a、b 或 c 中的其他字母。
aa|bb - 匹配 aa 或 bb。
? - 0 次或 1 次匹配。
* - 匹配 0 次或多次。
+ - 匹配 1 次或多次。
{n} - 匹配 n次。
{n,} - 匹配 n次以上。
{m,n} - 最少 m 次,最多 n 次匹配。
(expr) - 捕获 expr 子模式,以 \1 使用它。
(?:expr) - 忽略捕获的子模式。
(?=expr) - 正向预查模式 expr
(?!expr) - 负向预查模式 expr

在线客服QQ:543690914,备案号: 苏ICP备15037649号-32。东海县白塔埠镇佳诚电脑经营部版权所有。