Python在正则表达式中插入反斜杠

1 投票
3 回答
3984 浏览
提问于 2025-04-17 03:09

我正在尝试用正则表达式替换一个反斜杠,但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

撰写回答