Python在正则表达式中插入反斜杠
我正在尝试用正则表达式替换一个反斜杠,但Python似乎总是插入两个反斜杠,我不知道怎么才能让它只插入一个!
>>> re.sub('a', '\\ b', 'a')
'\\ b'
两个反斜杠本来应该表示一个反斜杠(转义符 + 反斜杠 = 反斜杠),但结果却变成了字面上的两个反斜杠。
如果我去掉这两个反斜杠,它根本就不打印出任何反斜杠:
>>> re.sub('a', '\ b', 'b')
'b'
我该怎么做才能让Python只插入一个反斜杠呢?
相关问题:
3 个回答
0
在字符串前面加上字母 "r"。这样可以告诉 Python 按字面意思来理解这个字符串。
比如你的代码:
re.sub('a', r'\ b', 'a')
你会发现 "r" 常常和 Python 以及正则表达式一起使用。
4
我想这不是一个真正的答案(我同意Liquid_Fire的看法),而是一个建议:
"\\b" -> \b
r"\b" -> \b
在Python中使用r""原始字符串,这样可以让反斜杠变得简单。
6
这并不是在插入两个反斜杠。其实这是交互式解释器把字符串显示成字面意思。你可以用 print 来查看实际的字符串内容:
>>> "\\n"
'\\n'
>>> print "\\n"
\n