python正则表达式去掉了反斜杠
通过这段代码,我得到:python正则表达式去掉了反斜杠,python,regex,Python,Regex,通过这段代码,我得到: newContent='asdf asdf \nOUTPUT_DIRECTORY = working\topOnly' 我希望它是: newContent='asdf asdf \nOUTPUT_DIRECTORY = working\\topOnly' reg ex正在剥离“working”和“topoly”之间的“”。如果我执行类似于“valStr='working\\ytopOnly'”的操作,那么它将按预期工作 我需要在我的代码中更改什
newContent='asdf asdf \nOUTPUT_DIRECTORY = working\topOnly'
我希望它是:
newContent='asdf asdf \nOUTPUT_DIRECTORY = working\\topOnly'
reg ex正在剥离“working”和“topoly”之间的“
”。如果我执行类似于“valStr='working\\ytopOnly'”
的操作,那么它将按预期工作
我需要在我的代码中更改什么,以使其符合预期
import re
valStr = 'working\\topOnly'
cmdFileContent = 'asdf asdf \nOUTPUT_DIRECTORY = asdf'
name = 'OUTPUT_DIRECTORY'
varRegEx = r"""
(\n #match new line
%s #var
\s* #skip white spaces
=
\s?) #skip white spaces
(.*) #match and store rest of line
"""%name
newContent = re.compile(varRegEx, re.VERBOSE).sub(r'\1%s'%valStr, cmdFileContent)
re.sub的帮助说明:
repl可以是字符串,也可以是可调用的;如果是字符串,则处理其中的反斜杠转义
由于它正在执行自己的一层处理转义,您将需要另一层转义:
newContent = re.compile(varRegEx, re.VERBOSE).sub(r'\1%s'%valStr.replace('\\', '\\\\'), cmdFileContent)
re.sub的帮助说明:
repl可以是字符串,也可以是可调用的;如果是字符串,则处理其中的反斜杠转义
由于它正在执行自己的一层处理转义,您将需要另一层转义:
newContent = re.compile(varRegEx, re.VERBOSE).sub(r'\1%s'%valStr.replace('\\', '\\\\'), cmdFileContent)
与reg exp完全无关。试试这个:
valStr = 'working\\topOnly'
print valStr
你认为print
是否也在“剥离”你的背部斜线?也许这是个阴谋
这只是Python解析器本身。与几乎所有语言解析器一样,它将反斜杠视为转义,因此g\\t
表示g-backslax-t,而g\t
表示“g-tab”。试一试
valStr = 'working\\\\topOnly'
与reg exp完全无关。试试这个:
valStr = 'working\\topOnly'
print valStr
你认为print
是否也在“剥离”你的背部斜线?也许这是个阴谋
这只是Python解析器本身。与几乎所有语言解析器一样,它将反斜杠视为转义,因此g\\t
表示g-backslax-t,而g\t
表示“g-tab”。试一试
valStr = 'working\\\\topOnly'
实际输出和预期输出在问题上相同,请编辑它。实际输出和预期输出在问题上相同,请编辑它。My IDE显示字符串的repr版本。Mu Mind解决方案有效。感谢您的帮助我的IDE显示了字符串的repr版本。Mu Mind解决方案有效。谢谢你的帮助