Как найти все, что находится между двумя символами в строке Python?
допустим у меня есть строка:
'строка <, которую 123>надо<разделить>'
И я хочу получить из нее:
', которую 123 разделить'
То есть мне нужно все, что находится между <>. У меня есть код:
import re
regex = re.compile("\<(.*)\>")
regex.findall('строка <, которую 123>надо<разделить>')
Но выводит у меня не то, что нужно:
', которую 123>надо<разделить'
Ответы (1 шт):
Автор решения: Wiktor Stribiżew
→ Ссылка
Используйте
import re
text = 'строка <, которую 123>надо<разделить>'
print( ' '.join(re.findall(r'<([^<>]+)>', text)) )
# => , которую 123 разделить
См. пример работы кода и регулряного выражения.
Выражение <([^<>]+)> находит
<- символ<([^<>]+)- один и более символов, отличных от<и>, захватываемых в подмаску #1>- символ>.
re.findall возвращает список значений в первой подмаске, а ' '.join(...) объединяет их в одну строку.