如何在Python中删除字符串的前导和尾随空白?
" Hello world " --> "Hello world"
" Hello world" --> "Hello world"
"Hello world " --> "Hello world"
"Hello world" --> "Hello world"
如何在Python中删除字符串的前导和尾随空白?
" Hello world " --> "Hello world"
" Hello world" --> "Hello world"
"Hello world " --> "Hello world"
"Hello world" --> "Hello world"
当前回答
正如上面的答案所指出的
my_string.strip()
将删除所有前导和后面的空白字符,如\n, \r, \t, \f,空格。
为了获得更大的灵活性,请使用以下方法
只删除前导空白字符: 只移除尾随的空格字符: 删除特定的空白字符:my_string.strip('\n')或my_string.lstrip('\n\r')或my_string.rstrip('\n\t')等。
更多细节可以在文档中找到。
其他回答
要移除字符串周围的所有空白,请使用.strip()。例子:
>>> ' Hello '.strip()
'Hello'
>>> ' Hello'.strip()
'Hello'
>>> 'Bob has a cat'.strip()
'Bob has a cat'
>>> ' Hello '.strip() # ALL consecutive spaces at both ends removed
'Hello'
注意str.strip()删除所有空白字符,包括制表符和换行符。若要仅删除空格,请指定要删除的特定字符作为strip的参数:
>>> " Hello\n ".strip(" ")
'Hello\n'
最多只删除一个空格:
def strip_one_space(s):
if s.endswith(" "): s = s[:-1]
if s.startswith(" "): s = s[1:]
return s
>>> strip_one_space(" Hello ")
' Hello'
这将删除myString中所有前导和尾部的空格:
myString.strip()
这也可以用正则表达式来实现
import re
input = " Hello "
output = re.sub(r'^\s+|\s+$', '', input)
# output = 'Hello'
如何在Python中删除字符串的前导和尾随空白?
因此,下面的解决方案将删除开头和结尾空白以及中间空白。比如,如果你需要得到一个没有多个空格的清晰字符串值。
>>> str_1 = ' Hello World'
>>> print(' '.join(str_1.split()))
Hello World
>>>
>>>
>>> str_2 = ' Hello World'
>>> print(' '.join(str_2.split()))
Hello World
>>>
>>>
>>> str_3 = 'Hello World '
>>> print(' '.join(str_3.split()))
Hello World
>>>
>>>
>>> str_4 = 'Hello World '
>>> print(' '.join(str_4.split()))
Hello World
>>>
>>>
>>> str_5 = ' Hello World '
>>> print(' '.join(str_5.split()))
Hello World
>>>
>>>
>>> str_6 = ' Hello World '
>>> print(' '.join(str_6.split()))
Hello World
>>>
>>>
>>> str_7 = 'Hello World'
>>> print(' '.join(str_7.split()))
Hello World
正如你所看到的,这将删除字符串中所有的空格(所有输出都是Hello World)。地点并不重要。但如果确实需要前导和尾随空格,则可以找到strip()。
Strip也不局限于空白字符:
# remove all leading/trailing commas, periods and hyphens
title = title.strip(',.-')