正则表达式分割与匹配
>>> zznew
'...0002211 118 7.5 "Weeds" (2005) {The Love Circle Overlap (#4.10)}'
>>> re.split('\(+\d+\)',zznew)
['...0002211 118 7.5 "Weeds" ', ' {The Love Circle Overlap (#4.10)}']
>>> m = re.match('\(+\d+\)',zznew)
>>> m.groups()
Traceback (most recent call last):
File "<pyshell#104>", line 1, in <module>
m.groups()
AttributeError: 'NoneType' object has no attribute 'groups'
在上面的例子中,当我使用split的时候,它能找到(2005)并把它分开……但是当我用match的时候,它却没有匹配到……m.groups()的结果是空的……这是怎么回事呢 :(
1 个回答
2
这两个方法的区别在于,re.match
只会在字符串的开头进行匹配,而 re.search
可以在字符串的任何位置进行匹配。想了解更多细节,可以查看 文档。
正如 NullUserException 指出的,如果你想提取年份,可以这样做:
m = re.search('\((\d+)\)', zznew)
print m.group(1)