Удалить все числа из текста, кроме тех, которые в названии
Необходимо удалить из текса все числа (включая те, которые пишутся через запятую или точку, например 3,14 или 3.14), но оставить те, которые используются внутри слова, например T-34, 2ГИС и тд.
Пыталась использовать такую конструкцию, но она удаляет абсолютно все цифры, даже из названий.
b = re.sub(r"[^\w\s]+|[\d]+", r'', a).strip()
Пример входных данных: a = "по навигатору в 2ГИС мне добираться до дома 35,6 километра, что займет 10 часов"
На выходе надо получить: b = "по навигатору в 2ГИС мне добираться до дома километра, что займет часов"
Ответы (1 шт):
Автор решения: GrAnd
→ Ссылка
Вот такая регулярка:
import re
a = "На Т-34 с серийным номером AB45F6Z1 по навигатору в 2ГИС мне добираться до дома 35,6 километра, что займет 10 часов"
b = re.sub(r"(^|\s+)(\d+([\.,]\d+)?)(?=\s|$)", "", a)
Даст такой результат:
На Т-34 с серийным номером AB45F6Z1 по навигатору в 2ГИС мне добираться до дома километра, что займет часов