如何去除空白字符?

1220 投票
15 回答
1276364 浏览
提问于 2025-04-15 13:10

有没有一个Python函数可以去掉字符串中的空格和制表符(也就是Tab)呢?

比如说,如果输入是 " \t example string\t ",那么处理后应该变成 "example string"

15 个回答

26

对于字符串开头和结尾的空格:

s = '   foo    \t   '
print s.strip() # prints "foo"

否则,可以使用正则表达式来处理:

import re
pat = re.compile(r'\s+')
s = '  \t  foo   \t   bar \t  '
print pat.sub('', s) # prints "foobar"
85

在Python中,去掉字符串两端空白的功能叫做trim,而这个功能的具体方法叫做strip

str.strip()  # trim
str.lstrip()  # left trim
str.rstrip()  # right trim
1777

如果你想去掉字符串两边的空白,可以使用 str.strip

s = "  \t a string example\t  "
s = s.strip()

如果只想去掉右边的空白,可以用 str.rstrip

s = s.rstrip()

如果只想去掉左边的空白,可以用 str.lstrip

s = s.lstrip()

你还可以给这些函数传递参数,以去掉其他任意字符,像这样:

s = s.strip(' \t\n\r')

这样做会去掉字符串两边的空格、\t(制表符)、\n(换行符)或 \r(回车符)。

上面的例子只去掉了字符串左右两边的字符。如果你想去掉字符串中间的字符,可以试试 re.sub

import re
print(re.sub('[\s+]', '', s))

这样应该会输出:

astringexample

撰写回答