在python中使用正则表达式

Posted 我是冰霜

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在python中使用正则表达式相关的知识,希望对你有一定的参考价值。

这里主要说一下贪婪匹配和非贪婪匹配

 贪婪匹配:匹配尽可能多的字符;  非贪婪匹配:匹配尽可能少的字符

python的正则匹配默认是贪婪匹配

例子:

>>> re.match(r^(w+)(d*)$,abc123).groups()
(abc123, ‘‘)
>>> re.match(r^(w+?)(d*)$,abc123).groups()
(abc, 123)

表达式1:
w+表示匹配字母或数字或下划线或汉字并重复1次或更多次;d*表示匹配数字并重复0次或更多次。
分组1中(w)是贪婪匹配,它会在满足分组2(d*)的情况下匹配尽可能多的字符(有点拗口),
因为分组2(d*)匹配0个数字也满足,所以分组1就把所有字符全部匹配掉了,分组2只能匹配空了。

表达式2:在表达式后加个?即可进行非贪婪匹配,如上面的(w+?),
因为分组1进行非贪婪匹配,也就是满足分组2匹配的情况下,分组1尽可能少的匹配,
这样的话,上面分组2(d*)会把所有数字(123)都匹配,所以分组1匹配到(abc)

 











以上是关于在python中使用正则表达式的主要内容,如果未能解决你的问题,请参考以下文章

python成长之路第三篇_正则表达式

Python学习笔记之正则表达式

python 正则表达式

python 正则表达式 re模块基础

通过 Java 正则表达式提取 semver 版本字符串的片段

python基础学习(十三)