Регулярные выражения разделяются и совпадают - PullRequest
1 голос
/ 22 августа 2010
>>> 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 Ответ

2 голосов
/ 22 августа 2010

Используйте re.search вместо re.match.

Разница между этими двумя методамичто re.match соответствует только в том случае, если совпадение начинается в начале строки, тогда как re.search может совпадать в любом месте строки.См. документацию для получения более подробной информации.

Как указано NullUserException , если вы хотите извлечь год, вы можете сделать это следующим образом:

m = re.search('\((\d+)\)', zznew)
print m.group(1)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...