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))
→ Ссылка