Как захватить несколько подстрок между двумя маркерами, используя регулярные выражения? - PullRequest
0 голосов
/ 10 июля 2019

Я знаю, как перехватить один экземпляр подстроки между двумя маркерами:

Python 3 Как получить строку между двумя точками с помощью регулярных выражений?

Я тестировалподход с этой строкой:

text = 'blah.blah${capture1}.${capture2}'

Я хотел получить все подстроки между этими маркерами '$ {' и '}', но он получает только первую.

>>> text = 'blah.blah${capture1}.${capture2}'
>>> found = re.search('\$\{(.+?)\}', text)
>>> found.groups()
('capture1',)
>>> len(found.groups())
1
>>> 

Как мне получить их все?

1 Ответ

1 голос
/ 10 июля 2019

Вам нужен метод регулярных выражений, который найдет все совпадения в строке. Вы должны попробовать re.findall('\$\{(.+?)\}', text) или re.finditer('\$\{(.+?)\}', text). Первый вернет список, второй вернет итеративный.

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