这里奇怪的行为是我运行代码:Python的 - 在应用re.sub
import re
FIND_TERM = r'C:\\Program Files\\Microsoft SQL Server\\90\\DTS\\Binn\\DTExec\.exe'
rfind_term = re.compile(FIND_TERM,re.I)
REPLACE_TERM = 'C:\\Program Files\\Microsoft SQL Server\\100\\DTS\\Binn\\DTExec.exe'
test = r'something C:\Program Files\Microsoft SQL Server\90\DTS\Binn\DTExec.exe something'
print rfind_term.sub(REPLACE_TERM,test)
而结果我得到的是:
something C:\Program Files\Microsoft SQL [email protected]\DTS\Binn\DTExec.exe something
为什么会有一个@符号?
但我已经逃避了反斜杠。为什么我需要两次逃脱? – Greg 2010-05-24 20:36:56
您正在逃避Python的反斜杠。您仍然需要为're'引擎转义它,以便它不被视为反向引用或八进制转义序列。 – 2010-05-24 20:48:26