我很难将字符串“\”与正则表达式匹配。 我尝试了以下但是没有用。
print re.sub('([\"\\\\\"])', "-", myText, 0)
有什么想法吗?
谢谢,
答案 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)