我想从字符串的两端和单词之间消除所有空格。
我有这个 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 中使用)