Python如何去掉字符串中的空白符

我们来介绍几种去除字符串中空白符的方法。它们基本上可以分为两类,一类是Python字符串对象str的不同方法,比如str.split()str.replace();另外一类是Python正则表达式方法。

在下面的例子中,我们用字符串" Demo Example "来进行举例说明。

移除字符串开头的空白符

str.lstrip()方法

>>> demo = " Demo  Example  "
>>> demo.lstrip()
"Demo  Example  "

在这里,str.lstrip()方法去掉了字符串开头字符中由输入变量指定的字符。假如没有输入变量的话,它就会去除字符串开头的所有空白符。

Python正则表达式方法

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"^\s+", "", demo)
"Demo  Example  "

^指定了只匹配字符串开头的字符,\s的意思是匹配各种不同的空白符,比如空格、制表符、回车等,或者说,它等同于后面的字符集合-[ \t\n\r\f\v]+会去尽量多的匹配连续的空白符。

你可以参照本网站的Python正则表达式教程来学习更多的正则表达式的知识。

移除字符串末尾的空白符

str.rstrip()方法

str.lstrip()方法可用来移除字符串开头的空白符对应的方法-str.rstrip()可以用来移除字符串末尾的空白符。

>>> demo = " Demo  Example  "
>>> demo.lstrip()
" Demo  Example"

Python正则表达式方法

同样的,你也可以通过正则表达式来去除字符串末尾的空白符。

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"\s+$", "", demo)
" Demo  Example"

去除字符串开头和结尾的空白符

str.strip()方法

str.strip()方法是str.lstrip()str.rstrip()方法的结合,它可以来去掉字符串开头和结尾的空白符。

>>> demo = " Demo  Example  "
>>> demo.strip()
"Demo  Example"

Python正则表达式方法sub()

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"^\s+|\s+$", "", demo)
"Demo  Example"

去掉所有的空白符

Python字符串替代方法str.replace()

假如我们要去掉字符串中所有的空白符的话,就没有必要检查空白符的位置了,那就可以直接用str.replace()方法来用空字符""来 替代字符串中所有的空白符。

>>> demo = " Demo  Example  "
>>> demo.replace(" ", "")
'DemoExample'

Python正则表达式sub()方法

正则表达式中,用\s+来匹配的所有的空白符。

>>> import re
>>> demo = " Demo  Example  "
>>> re.sub(r"\s+", "", demo)
"DemoExample"

只去除重复的空白符

Python字符串分割方法str.split()

>>> demo = " Demo  Example  "
>>> " ".join(demo.split())
'Demo Example'

str.split()返回了字符串的子字符串列表,当输入变量为空的时候,空白符就是默认的分隔符。

Python正则表达式方法re.split()

>>> import re
>>> demo = " Demo  Example  "
>>> " ".join(re.split(r"\s+", demo)
" Demo Example "
警告

re.split()str.split()的结果是不同的,re.split()输出结果中会含有空字符串假如字符串开头或者结尾包含 空白符,但是str.split()方法的结果中就不会有任何的空字符串。