我對於正則表達式和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