Python从字符串中删除空格

时间:2020-02-23 14:43:14  来源:igfitidea点击:

在Python中,有多种方法可以从字符串中删除空格。
本教程旨在提供各种函数的简短示例,我们可以使用这些函数从字符串中删除空格。

Python从字符串中删除空格

Python字符串是不可变的,因此我们无法更改其值。
任何操纵字符串值的函数都将返回一个新字符串,我们必须将其明确分配给该字符串,否则,字符串值将保持不变。

假设我们有一个示例字符串,定义为:

s = '  Hello  World   From hyman \t\n\r\tHi There  '

该字符串具有不同类型的空格以及换行符。

让我们看一下删除空格的不同函数。

strip()

Python String strip()函数将删除开头和结尾的空格。

>>> s.strip()
'Hello  World   From hyman \t\n\r\tHi There'

如果只想删除前导或者尾随空格,请改用lstrip()或者rstrip()函数。

replace()

我们可以使用replace()从字符串中删除所有空格。
此功能也将删除单词之间的空格。

>>> s.replace(" ", "")
'HelloWorldFromhyman\t\n\r\tHiThere'

join()与split()

如果要消除所有重复的空格和换行符,则可以将join()函数与字符串split()函数一起使用。

>>> " ".join(s.split())
'Hello World From hyman Hi There'

translate()

如果要摆脱所有空格和换行符,可以使用字符串translate()函数。

>>> import string
>>> s.translate({ord(c): None for c in string.whitespace})
'HelloWorldFromhymanHiThere'

Python使用正则表达式从字符串中删除空格

我们还可以使用正则表达式来匹配空格,并使用re.sub()函数将其删除。

import re

s = '  Hello  World   From hyman \t\n\r\tHi There  '

print('Remove all spaces using RegEx:\n', re.sub(r"\s+", "", s), sep='')  # \s matches all white spaces
print('Remove leading spaces using RegEx:\n', re.sub(r"^\s+", "", s), sep='')  # ^ matches start
print('Remove trailing spaces using RegEx:\n', re.sub(r"\s+$", "", s), sep='')  # $matches end
print('Remove leading and trailing spaces using RegEx:\n', re.sub(r"^\s+|\s+$", "", s), sep='')  # | for OR condition

输出:

Remove all spaces using RegEx:
HelloWorldFromhymanHiThere
Remove leading spaces using RegEx:
Hello  World   From hyman 	
	Hi There  
Remove trailing spaces using RegEx:
Hello  World   From hyman 	
	Hi There
Remove leading and trailing spaces using RegEx:
Hello  World   From hyman 	
	Hi There