Python арифметическое преобразование цифр с рядом стоящим символом (словом)
Иметься строка со словами, необходимо изменить (умножить на 2) только те числа рядом с которыми стоит к примеру руб.(Руб, РУБ), но не изменять цифры со словами дол., dol, euro, размер и т.п. Как изменить только цифры со значениями рубля?
w='Кросовок размер как чайник 12EU грн. EU32 19см 100грн. цена 300руб. dol.34 +78-09308-34 пересылаю РУБ 200'
def by_2(m: re.Match) -> str:
d = int(m[0]) * 2
return f'{d:.0f}'
print(re.sub(r'\d+', increase_by_10_perc, w))
Зарание спасибо !
Ответы (1 шт):
Автор решения: GrAnd
→ Ссылка
def by_2(m: re.Match) -> str:
d = int(m[3]) * 2
return f'{m[1]}{d:.0f}{m[4]}'
print(re.sub(r'((\bруб\.?\s*)?)(\d+)((?(2)|\s*руб\b))', by_2, w, flags=re.I))