晚安,伙計們!
使用 Python 我有一個包含許多序列的文本,如下所示:
\n34.99
我想改成
\t34.99
嘗試使用re.sub('\n\d \\.\d ', '\t\d \\.\d ', text),text保存要替換的文本的變數在哪里,我在 Python 3.9.10 中遇到錯誤
re.error: 位置 1 的錯誤轉義 \d
大家能幫我想想辦法嗎?
uj5u.com熱心網友回復:
由于它的性能,我會擺脫使用正則運算式。在您的情況下,這是因為'\n\d \\.\d '是格式化的字串,您應該將其設為原始字串。
所以代碼是:
re.sub(r'\n\d \\.\d ', r'\t\d \\.\d ', text)
uj5u.com熱心網友回復:
替換輸入re.sub不接受正則運算式,而只接受帶有可能捕獲組的字串文字。我會在這里使用一個捕獲組:
inp = "Hello\n34.99"
print("Input: " inp)
output = re.sub(r'\n(\d (?:\.\d )?)', r'\t\1', inp)
print("Output: " output)
這列印:
Input: Hello
34.99
Output: Hello 34.99
uj5u.com熱心網友回復:
你可以使用這個注冊
re.sub(r'\n(\d \.\d )', r'\t\1',text)
\1意思是保留第一個引數子部分
轉載請註明出處,本文鏈接:https://www.uj5u.com/net/429559.html
