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