我有一個Python的re.sub()問題。我的目標:Python的正則表達式:re.sub()進入輸入新的正則表達式作爲字符串
- 通過文件名的文件名
- interate在for循環中
- 發現regex1的(RE1)與regex2替換(RE2)
我曾嘗試以下:
import re
f_names = ["6000_3-22__data22_new.asc","99_23-2_B__report_22.pdf"]
re1 = r"[0-9]+_[0-9]+-[0-9]+_"
re2 = r"[0-9]+-[0-9]+-[0-9]+"
for f in f_names:
f = re.sub(re1, re2, f)
print f
其中字面意思是在字符串中的re2:
[0-9]+-[0-9]+-[0-9]+_data22_new.asc
[0-9]+-[0-9]+-[0-9]+B__report_22.pdf
我想看到什麼返回是:
6000-3-22_data22_new.asc
99-23-2B__report_22.pdf
我也使用re.compile作爲第一步,可以得到相同的結果嘗試。 當然,我必須錯過一些非常明顯的東西,但不能發現它。誰能幫忙?
謝謝!
爲正則表達式尼斯修復,_but_這不會在列表中更改值。 (我認爲這就是OP想要的)也許把這個和列表理解結合起來? –
@tobias_k好點!我已經更新了列表理解的答案 – nu11p01n73R
謝謝,我做了更改並嘗試了第一個選項和列表理解,但在兩個文件上都得到以下錯誤: 文件「C:\ Python27 \ lib \ sre_parse.py」 ,第833行,在expand_template中 引發錯誤,「無效組引用」 sre_constants.error:無效的組引用 – qwertysmack