Обозначение границ слова с помощью регулярных выражений в Python

Так, есть, условно, задача: дана строка 'XABADXJSADZFNEFEXNNZFWUFNWFNXUNNINNUZAFE' (для примера, только заглавные латинские буквы). Необходимо вывести все подпоследовательности, начинающиеся на X и заканчивающиеся Z: XJSADZ, XNNZ, XUNNINNUZ, При этом между X и Z не может быть X, т.е. строка XABADXJSADZ не должна попасть в вывод Заранее спасибо!


Ответы (1 шт):

Автор решения: gil9red

В условии регулярки указываем, что ожидаем X<любые символы кроме X>Z

import re

text = 'XABADXJSADZFNEFEXNNZFWUFNWFNXUNNINNUZAFE'

print(re.findall('X[^X]+Z', text))
# ['XJSADZ', 'XNNZ', 'XUNNINNUZ']
→ Ссылка