Я знаю, как перехватить один экземпляр подстроки между двумя маркерами:
Python 3 Как получить строку между двумя точками с помощью регулярных выражений?
Я тестировалподход с этой строкой:
text = 'blah.blah${capture1}.${capture2}'
Я хотел получить все подстроки между этими маркерами '$ {' и '}', но он получает только первую.
>>> text = 'blah.blah${capture1}.${capture2}' >>> found = re.search('\$\{(.+?)\}', text) >>> found.groups() ('capture1',) >>> len(found.groups()) 1 >>>
Как мне получить их все?
Вам нужен метод регулярных выражений, который найдет все совпадения в строке. Вы должны попробовать re.findall('\$\{(.+?)\}', text) или re.finditer('\$\{(.+?)\}', text). Первый вернет список, второй вернет итеративный.
re.findall('\$\{(.+?)\}', text)
re.finditer('\$\{(.+?)\}', text)