@13_nastya_13

Kак разделить строку на слова по регистрам?

Например как можно разделить строку ROMAlaPARIGIvendita на [ROMA, la, PARIGI, vendita]
  • Вопрос задан
  • 102 просмотра
Пригласить эксперта
Ответы на вопрос 2
@Drill
import re

ss = 'ROMAlaPARIGIvendita'

out = re.findall(r'[A-Z]+|[a-z]+',ss)
print(out)

In [2]:
['ROMA', 'la', 'PARIGI', 'vendita']
Ответ написан
Комментировать
adugin
@adugin Куратор тега Python
Отличное решение у Drill. Добавлю альтернативные варианты:
text = 'ROMAlaPARIGIvendita'

from itertools import groupby
from string import ascii_lowercase

# Вариант #1
[''.join(group) for _, group in groupby(text, key=set(ascii_lowercase).issuperset)]

# Вариант #2
[''.join(group) for _, group in groupby(text, key=lambda c: c > 'Z')]
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы