Python - re.sub 中的奇怪行为

标签 python regex

这是我正在运行的代码:

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 Server@\DTS\Binn\DTExec.exe something

为什么有@符号?

最佳答案

您正在混合原始字符串 ( 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

关于Python - re.sub 中的奇怪行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2899805/

相关文章:

python - 按列数过滤 Pandas df 并写入数据

python - 使用 for 循环缩放列

python - 如何在Python中打印缺失值的列名和缺失值的数量?

python - Ray:在Python脚本中多次调用tune.run()时的内存管理

javascript - Regex101 与 JavaScript String.match 分歧

python - 一维随机游走期望值

ios - 在字符串 Swift 之间拆分 HTML 字符串

regex - vim 正则表达式搜索 csv 字符串并粘贴匹配项

python - 使用正则表达式修改字符串

javascript - 有效 url 的正则表达式