我的问题是,为了做sub我需要逃避一个特殊的角色。但我不想修改我替换的字符串。 Python有办法解决这个问题吗?
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
由于" \ 1"返回错误在in" fstring"被视为一个群体对象。
error: invalid group reference
答案 0 :(得分:1)
逃离最终的反斜杠:
new_data = r'Some random text\n ' + fstring.replace('\\', r'\\')
答案 1 :(得分:0)
\1
通常意味着对正则表达式匹配的第1组进行反向引用,但这不是您想要的(实际上没有第1组,这是错误的原因),您将会这样做因此,需要转义字符串,因此re
不会将\1
视为元字符:
fstring = r'C:\Temp\\1_file.txt'