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"
Python 正規表示式方法去除字串開頭和結尾的空白符
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()
方法的結果中就不會有任何的空字串。Founder of DelftStack.com. Jinku has worked in the robotics and automotive industries for over 8 years. He sharpened his coding skills when he needed to do the automatic testing, data collection from remote servers and report creation from the endurance test. He is from an electrical/electronics engineering background but has expanded his interest to embedded electronics, embedded programming and front-/back-end programming.
LinkedIn