python正则表达式去掉反斜杠

2024-09-28 18:52:31 发布

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

有了这个代码,我得到:

newContent='asdf asdf \nOUTPUT_DIRECTORY       = working\topOnly'

我希望是:

^{pr2}$

regex正在剥离"""working""""""topOnly"""之间的"""\"""。如果我做一些类似"""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)

Tags: 代码namerematchlinedirectoryworkingskip
2条回答

与注册经验完全无关。试试这个:

 valStr = 'working\\topOnly'
 print valStr

你认为print也在“剥离”你的一个反斜杠?也许这是个阴谋!在

它只是Python解析器本身。与几乎所有语言解析器一样,它将反斜杠视为转义符,因此g\\t表示g-backslash-t,而g\t表示“g-tab”。试试看

^{pr2}$

帮助re.sub公司说:

repl can be either a string or a callable; if a string, backslash escapes in it are processed.

由于它执行自己的处理转义层,因此需要另一层转义:

newContent = re.compile(varRegEx, re.VERBOSE).sub(r'\1%s'%valStr.replace('\\', '\\\\'), cmdFileContent)

相关问题 更多 >