【发布时间】:2013-04-27 16:04:01
【问题描述】:
在 Python 3.x 中,特殊的 re 序列 '\s' 匹配 Unicode 空白字符,包括 [ \t\n\r\f\v]。
以下代码旨在用空格替换制表符和换行符。
import re
text = """Hello my friends.
How are you doing?
I'm fine."""
output = re.sub('\s', ' ', text)
print(output)
但是,该选项卡仍然存在于输出中。为什么?
【问题讨论】:
-
您确定“制表符”不只是一堆空格吗?大多数(如果不是全部)IDE 用四个空格替换制表符。使用
\t作为选项卡,它会起作用。 -
...但我的问题的重点是,'\s' 应该包括 ''、'\n' 和 '\t'
-
是的,但是它将用空格替换每个空白字符。一组空间将仍然是一组空间。如果您想用单个空格替换一组空格字符,请改用
r'\s+'。 -
@user1975053 我们不知道。 SO上的内容是一堆空格。通过按 4 次向左箭头检查是否可以从
How转到行首,如果可以,则这些是空格。 -
您希望将制表符替换为一个空格,还是类似 4 个空格?
标签: python regex python-3.x