Python Regex не повторяет все группы - PullRequest
0 голосов
/ 26 февраля 2019
tags = "['foo', 'bar', 'spam']"
tags = re.findall("\[(?:'(\w+)'(?:, )?)*\]", tags)

возвращает только ['spam'], а не ['foo', 'bar', 'spam'].Что я делаю не так?

1 Ответ

0 голосов
/ 26 февраля 2019

Когда вы используете findall с регулярным выражением, содержащим группы захвата, он не возвращает совпадения для всего шаблона, только захваченные группы.

Кажется, нет необходимости взахватить группу в своем регулярном выражении, поэтому избавьтесь от нее.

tags = re.findall("\[(?:'\w+'(?:, )?)*\]", tags)

это возвращает:

["['foo', 'bar', 'spam']"]
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...