正则表达式分裂和匹配

时间:2010-08-22 01:50:47

标签: python regex

>>> 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)匹配并将其拆分... 但是当我使用匹配时它不匹配... m.groups()文件为空.. 这有什么问题:(

1 个答案:

答案 0 :(得分:2)

使用re.search代替re.match

这两种方法的区别在于re.match仅在匹配从字符串的开头开始匹配,而re.search可以匹配字符串中的任何位置。有关详细信息,请参阅documentation

正如NullUserException指出的那样,如果你想提取年份,你可以按如下方式进行:

m = re.search('\((\d+)\)', zznew)
print m.group(1)