python在正则表达式中匹配“\”

时间:2014-05-19 16:20:12

标签: python regex

我很难将字符串“\”与正则表达式匹配。 我尝试了以下但是没有用。

print re.sub('([\"\\\\\"])', "-", myText, 0)

有什么想法吗?

谢谢,

3 个答案:

答案 0 :(得分:5)

@iCodez是对的,但如果你真的想使用正则表达式:

>>> re.sub(r"\\", "-", r"this\and\that")
'this-and-that'

请注意使用r指定raw string

编辑:实际上,重新阅读您的问题并不完全清楚您是否要替换\"\" - 在后一种情况下,您和#39;我想要:

>>> re.sub(r'"\\"', "-", r'This "\" string "\" is "\" odd.')
'This - string - is - odd.'

...再次iCodes指出,直线replace()更简单:

>>> text = r'This "\" string "\" is "\" odd.'
>>> text.replace(r'"\"', '-')
'This - string - is - odd.'

答案 1 :(得分:1)

反斜杠用作转义字符。对于每个单个\)反斜杠,您需要两个反斜杠(\\)。

使用r是Python的正则表达式模式的原始字符串表示法,并避免转义。

>>> re.sub(r'"\\"', '-', r'foo "\" bar "\" baz')
'foo - bar - baz'

如果您只是想在没有引号的情况下替换反斜杠本身。

>>> re.sub(r'\\', '-', r'foo\bar\baz')
'foo-bar-baz'

答案 2 :(得分:0)

我认为你的正则表达式需要一些调整。如果我理解你要做什么,你想用 - 替换“\”。

 print re.sub('\"\\\\\"', "-", myText, 0)