我是Python新手,被卡在正則表達式替換上。我正在解析一個設置文件,其中包含以下語句:Python re.sub附加字符串,而不是替換它
set fmri(convolve7) 3
設置文件被用作模板。該腳本通過模板進行解析並使用更新後的設置寫入新的設置文件。
我的方案的主要結構是
for line in infile:
if condition = true
for each in listofelements
if re.search(each, line):
print(re.sub(r"\d+", "0", line), file=outfile, end='') # double output
if re.search(somethingelse, line):
print(re.sub(templatesubid, i, line), file=outfile, end='')# normal substitution
等
在取代用於在雙輸出,wheras外部for循環它簡化版,循環的結果。 for循環似乎用正確的替換字符串插入換行符,即
set fmri(convolve7) 0
set fmri(convolve7) 3
其他替換按預期工作,它們是相同的代碼。 for循環會導致這個double輸出嗎?
您可以將該代碼修剪爲更簡潔的示例嗎? –
這太長了......你不會得到答案......但re.sub確實取代了匹配......'print re.sub(「p +」,「b」,「Apple」)' –
因爲這是python,'如果condition:'就足夠了,'if condition = true'將始終爲真(賦值而不是比較),我認爲應該是由於缺少冒號而導致的語法錯誤。無論哪種情況,您都會同時打印該打印聲明和第二個打印聲明。你可能需要一個或另一個。 – ernie