我对于正则表达式和Python有点新奇,并且处于以下情况。我想采用一个等式字符串,如"A + B + C + 4D"
,并将数字1放在所有没有数字的变量前面。因此,像:Python中的正则表达式公式替换
>>> foo_eqn = "A + B + C + 4D"
>>> bar_eqn = fill_in_ones(foo_eqn)
>>> bar_eqn
"1A + 1B + 1C + 4D"
一些研究和询问后,我想出了
def fill_in_ones(in_eqn):
out_eqn = re.sub(r"(\b[A-Z]\b)", "1"+ r"\1", in_eqn, re.I)
return(out_eqn)
但是,它看起来像这只适用于前两个变量:
>>> fill_in_ones("A + B")
1A + 1B
>>> fill_in_ones("A + B + E")
1A + 1B + E
>>> fill_in_ones("2A + B + C + D")
2A + 1B + 1C + D
什么真的很明显我失踪了?谢谢!
短尖,使用'R “1 \ 1”',而不是' “1” + R“\ 1" '。 – mbomb007