python正则表达式如何匹配变量
比如原文为:
x+y=z
现在要将变量y 替换为 a
如何用python的正则表达式做替换呢。
如果x+yy=z就不能替换,因为yy和y不是同一个变量。变量名可以是包含数字\字母\下划线和$号的字符串。
[解决办法]
模式:(? <=[^y])y(?=[^y])
[解决办法]
那怎么区分 x+y=z 里的y呢?
就是说,y有什么特点?比如在这里是第二个“加数”的位置。
即:在 +号 跟 = 号之间。
[解决办法]
这个要涉及到递归替换,俺还不会呢。呵呵
[解决办法]
import re
dic = { 't1 ': 'x ', 't2 ': 'y ', 't3 ': 'z ', 't4 ': 'k '}
s = 't1 = t2 + t3 * t4 '
for k in dic:
s = re.sub(r '\b '+k+r '\b ', dic[k], s)
print s