私の問題は、サブを行うために特殊文字をエスケープする必要があることです。しかし、私は代わりにしている文字列を変更したくありません。 Pythonにはこれを処理する方法がありますか?文字列を変更せずに特殊文字を含む文字列を使用するPython re.sub
fstring = r'C:\Temp\1_file.txt' #this is the new data that I want to substitute in
old_data = r'Some random text\n .*' #I'm looking for this in the file that I'll read
new_data = r'Some random text\n '+fstring #I want to change it to this
f = open(myfile,'r') #open the file
filedata = f.read() #read the file
f.close()
newfiledata = re.sub(old_data,new_data,filedata) #substitute the new data
"fstring"の "\ 1"がグループオブジェクトとして認識されるため、エラーが返されます。
error: invalid group reference
、そう
re
はメタ文字として\1
を扱っていない文字列をエスケープする必要がありますあなたの生の弦でそれをエスケープする。あなたは 'fstring = r'C:\ Temp \\ 1_file.txt''を試すことができますか? –ありがとう、それはうまくいきますが、たくさんのファイルを読んでいるので、私がそれを避けることができれば、それぞれを修正するために余分なコードを書く必要はありません。それは大きな問題ではないと思います。 – sparrow
ああ、このサイトは時々迷惑だ。なぜ下投票? – sparrow