Добавить пробелы в адресах
Подскажите пожалуйста регулярное выражение для установки пробелов в слитных адресах.
Что есть:
pr.Lunacharskogo11k1_lit
Stachek47A
Industrialnyj26k24
Что нужно получить:
pr.Lunacharskogo 11 k1_lit
Stachek 47A
Industrialnyj 26 k24
Нужно как то выдергивать текст, число, текст и число и потом конкатенировать через пробел.
Ответы (2 шт):
Автор решения: Алексей Белкин
→ Ссылка
Программно можно так:
str1 = 'pr.Lunacharskogo11k1_lit'
index_word = []
index_digit = []
result_str = ''
for index, character in enumerate(str1):
if character.isdigit():
index_digit.append(index)
try:
result_str += ' ' + str1[index_word[0]: index_word[-1] + 1]
index_word = []
except:
pass
else:
index_word.append(index)
try:
result_str += ' ' + str1[index_digit[0]:index_digit[-1] + 1]
index_digit = []
except:
pass
result_str = result_str[1:]
print(result_str)
Выдаст:
pr.Lunacharskog 1
Автор решения: thelonelyangel
→ Ссылка
Регулярное выражение для разделения. Взято отсюда: ссылка
\d(?=[^_\d\W])|[^_\d\W](?=\d)