Как извлечь подстроки по определённому разделителю с помощью регулярных выражений?
Есть строка, например 'POLSTOPLFKSTOPKOIUNSTOPSTOP1STOP'.
С помощью регулярных выражений (модуль re в Python) нужно извлечь из этой строки следующие подстроки: POL, LFK, KOIUN, 1, т.е. обозначить границы слова другим словом - STOP.
Я попробовал это сделать с помощью:
res = [_ for _ in re.findall(r'[^STOP]+', line)]
Но результат неверный.
Ответы (2 шт):
Автор решения: GrAnd
→ Ссылка
Вам поможет re.split() или даже просто split(), если строка-разделитель простая.
>>> import re
>>> line = 'POLSTOPLFKSTOPKOIUNSTOPSTOP1STOP'
>>> re.split('STOP', line)
['POL', 'LFK', 'KOIUN', '', '1', '']
>>> line.split('STOP')
['POL', 'LFK', 'KOIUN', '', '1', '']
Затем пустые элементы отфильтровать любым удобным вам способом.
Автор решения: Jack_oS
→ Ссылка
my_str = 'POLSTOPLFKSTOPKOIUNSTOPSTOP1STOP'
Просто разбейте строку по 'STOP' и выберите непустые подстроки:
my_list = [w for w in my_str.split('STOP') if w]
в my_list будет:
>>> my_list
['POL', 'LFK', 'KOIUN', '1']