我想要實現的是用變量(變量的內容)用python正則表達式替換字符串。由於我需要保留一些匹配的表達式,因此我使用\1
和\3
組匹配參數。python正則表達式使用變量代表表達式
我的正則表達式/子看起來是這樣的:
pattern = "\1" + id + "\3" \b
out = re.sub(r'(;11=)(\w+)(;)',r'%s' % pattern, line)
這似乎是發生的是\1
和\3
沒有得到添加到輸出。
我也用替換表達式嘗試這樣做:
r'\1%s\3'%orderid
但我得到了類似的結果。 任何可能解決此問題的建議?
爲什麼你甚至需要將這些匹配存儲在'\ 1'和'\ 3'中?它們始終是相同的值,只是把它們作爲字符串。 're.sub(r'(; 11 =)(\ w +)(;)',「; 11 =」+ id +「;」,line)',或者完全移除捕獲:'re.sub(r' ; 11 = \ w +;',「; 11 =」+ id +「;」,line)'(並且您似乎並沒有使用'\ w +')。 – Jerry
我嘗試了其他的,但這是最終對我的工作。謝謝傑裏。我不相信我沒有看到。 – Pradyot