我想从字符串的两端和单词之间消除所有空格。
我有这个 Python 代码:
def my_handle(self):
sentence = ' hello apple '
sentence.strip()
但这仅消除了字符串两侧的空白。如何删除所有空格?
如果要删除str.strip()
和结尾的空格,请使用str.strip()
:
sentence = ' hello apple'
sentence.strip()
>>> 'hello apple'
如果要删除所有空格字符,请使用str.replace()
:
(注意,这只会删除 “普通” ASCII 空格字符' ' U+0020
但不会删除任何其他空白 )
sentence = ' hello apple'
sentence.replace(" ", "")
>>> 'helloapple'
如果要删除重复的空格,请使用str.split()
:
sentence = ' hello apple'
" ".join(sentence.split())
>>> 'hello apple'
要只删除空格,请使用str.replace
:
sentence = sentence.replace(' ', '')
要删除所有空格字符 (空格,制表符,换行符等),可以使用split
然后join
:
sentence = ''.join(sentence.split())
或正则表达式:
import re
pattern = re.compile(r'\s+')
sentence = re.sub(pattern, '', sentence)
如果只想从头到尾删除空格,可以使用strip
:
sentence = sentence.strip()
另一种选择是使用正则表达式并匹配这些奇怪的空格字符 。这里有些例子:
删除字符串中的所有空格,即使单词之间也是如此:
import re
sentence = re.sub(r"\s+", "", sentence, flags=re.UNICODE)
在字符串的开头删除空格:
import re
sentence = re.sub(r"^\s+", "", sentence, flags=re.UNICODE)
删除字符串末尾的空格:
import re
sentence = re.sub(r"\s+$", "", sentence, flags=re.UNICODE)
删除字符串的 BEGINNING 和 END 中的空格:
import re
sentence = re.sub("^\s+|\s+$", "", sentence, flags=re.UNICODE)
删除仅重复的空格:
import re
sentence = " ".join(re.split("\s+", sentence, flags=re.UNICODE))
(所有示例均可在 Python 2 和 Python 3 中使用)