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()方法的結果中就不會有任何的空字串。