@LakeForest

Как написать рег. выражение, чтобы находило цифры, которые написаны слитно с символами/буквами и ставила между ними пробел?

Примеры:

0% -> 0 %
я использую 1с -> я использую 1 с
2брата -> 2 брата
93/2 -> 93 / 2
скажи по 1разу 10 раз -> скажи по 1 разу 10 раз

Я попробовал так:

import re
reg = r'(\d+)'
digits = re.findall(reg, mytext)
for digit in digits:
   mytext = text.replace(digit, f" {digit} ")

Но понял, что такая реализация может сломать правильно написанные числа (например, `1с 10 раз` -> `1 с 1 0 раз`). Как правильно сделать замену?
  • Вопрос задан
  • 75 просмотров
Решения вопроса 1
0xD34F
@0xD34F Куратор тега Регулярные выражения
re.sub(r'(?<=[^\d\s])(?=\d)|(?<=\d)(?=[^\d\s])', ' ', text)
Ответ написан
Комментировать
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы