最近在学习Python相关的正则表达式,对其中的贪婪和非贪婪模式的概念有点模糊,希望借下面几个例子,能理解一下它们的区别:
例子1:
为何会出现这样的结果呢?
[out]12为何还多了一个空字符出来呢?
In [12]: re.match(r'^(\d+)(0*)$', '102300').groups() Out[12]: ('102300', '') In [13]: >>> re.match(r'^(\d+?)(0*)$', '102300').groups() Out[13]: ('1023', '00')
例子2:为什么加了?
,得到的结果就不一样了呢?
In [7]: import re
In [8]: r=re.findall(r'<title.*?\/title>','<title>首页 - CK的官方网站</title>,<title>首页 - Michael翔的官方网站</title>')
In [9]: r
Out[9]: ['<title>首页 - CK的官方网站</title>', '<title>首页 - Michael翔的官方网站</title>']
In [10]: r=re.findall(r'<title.*\/title>','<title>首页 - CK的官方网站</title>,<title>首页 - Michael翔的官方网站</title>
')
In [11]: r
Out[11]: ['<title>首页 - CK的官方网站</title>,<title>首页 - Michael翔的官方网站</title>']
天涯尽头无女友
相关分类