Учитывая комментарий, который вы написали, этот вид регулярного выражения должен работать:
import re
str = 'A = (x+2.)*(y+3.)-1'
print re.sub(r'(\d+)\.?',r'\1.0e0',str)
Вывод:
A = (x+2.0e0)*(y+3.0e0)-1.0e0
Объяснение регулярного выражения:
(...)
- означает группу захвата, то, что вам нужно захват для повторного использования во время замены \d
- означает любое число, эквивалентное [0-9] +
- означает 1 или более вхождение, эквивалентное {1,}
\.?
- означает, что мы хотим либо 0, либо 1 dot
.?
эквивалентно {0,1}
В замен:
\1
- означает, что мы хотим взять первую захваченную группу ивставьте сюда