码迷,mamicode.com
首页 > 编程语言 > 详细

在python中使用正则表达式(三)

时间:2018-06-18 16:06:23      阅读:127      评论:0      收藏:0      [点我收藏+]

标签:bsp   正则匹配   多次   例子   pytho   span   划线   python   strong   

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

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

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中使用正则表达式(三)

标签:bsp   正则匹配   多次   例子   pytho   span   划线   python   strong   

原文地址:https://www.cnblogs.com/hanmk/p/9188357.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!