Python的奇怪行为re.sub公司

2024-09-29 23:17:57 发布

您现在位置:Python中文网/ 问答频道 /正文

下面是我运行的代码:

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)

我得到的结果是:

^{pr2}$

为什么有@标志?在


Tags: resqlserverfilesfindprogramexereplace
2条回答

你在混合原始字符串(r'')和普通字符串。在

>>> FIND_TERM = r'C:\\Program Files\\Microsoft SQL Server\\90\\DTS\\Binn\\DTExec\.exe'
>>> REPLACE_TERM = r'C:\\Program Files\\Microsoft SQL Server\\100\\DTS\\Binn\\DTExec.exe' 
>>> rfind_term = re.compile(FIND_TERM,re.I)
>>> 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 Server\100\DTS\Binn\DTExec.exe something

RE引擎将REPLACE_TERM中的\100视为八进制转义码。您需要转义反斜杠,以便它被视为所需的。在

相关问题 更多 >

    热门问题