说,我想更改字符串'A =(x + 2。)*(y + 3。) - 1 '< / p>
到
'A =(x + 2.0e0 )*(y + 3.0e0 ) - 1.0e0 '。
应该更改每个数字,例如2或2。怎么做?
非常感谢!
答案 0 :(得分:6)
鉴于你写的评论,这种正则表达式应该有效:
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,}
\.?
- 表示我们想要0或1 dot
。 ?
相当于{0,1}
替代:
\1
- 表示我们想要首先捕获组并将其插入此处答案 1 :(得分:2)
您将要查看re
module。具体来说,re.sub()
。阅读该功能的完整文档。它可以做一些相当强大的事情。无论是for match in re.findall()
构造还是其他东西。