Python Regex: как повторить захват группы в тегах - PullRequest
0 голосов
/ 03 мая 2020

У меня есть такое регулярное выражение:

((?P<Dog>dog)|(?P<Animal>dog|cat|cow))

Для такой строки, как "dog cat", я бы хотел, чтобы регулярное выражение возвращало

    ***Capturing group: Result***    
    Dog    : dog
    Animal : [ dog, cat ]

Я понимаю, что оно имеет что-то делать с повторением группы захвата или захвата повторной группы. Есть ли способ сделать это в Python?

Спасибо

1 Ответ

0 голосов
/ 03 мая 2020

Попробуйте:

(?P<Animal>(?:(?:(?P<Dog>dog)|cat|cow)\s*)*)

Но это даст вам всех животных в одной строке, а не в списке.

Действительно зависит от проблемы, которую вы пытаетесь решить. Может быть, вам нужно использовать этот шаблон регулярных выражений с findall():

(?P<Animal>(?P<Dog>dog)|cat|cow))
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...