Я пытаюсь использовать re.sub()
в Python для сопоставления строки с символом e
и вставки фигурных скобок сразу после символа e
и после последней цифры. Например:
12.34e56 to 12.34e{56}
1e10 to 1e{10}
Не могу найти правильное регулярное выражение для вставки нужных фигурных скобок. Например, я могу правильно вставить левую фигурную скобку следующим образом:
>>> import re
>>> x = '12.34e10'
>>> pattern = re.compile(r'(e)')
>>> sub = z = re.sub(pattern, "\1e{", x)
>>> print(sub)
12.34e{10 # this is the correct placement for the left brace
Моя проблема возникает при использовании двух обратных ссылок.
>>> import re
>>> x = '12.34e10'
>>> pattern = re.compile(r'(e).+($)')
>>> sub = z = re.sub(pattern, "\1e{\2}", x)
>>> print(sub)
12.34e{} # this is not what I want, digits 10 have been removed
Кто-нибудь может указать на мою проблему? Спасибо за помощь.