如何在Python中删除字符串的前导和尾随空白?

" Hello world " --> "Hello world"
" Hello world"  --> "Hello world"
"Hello world "  --> "Hello world"
"Hello world"   --> "Hello world"

当前回答

你需要strip():

myphrases = [" Hello ", " Hello", "Hello ", "Bob has a cat"]

for phrase in myphrases:
    print(phrase.strip())

其他回答

正如上面的答案所指出的

my_string.strip()

将删除所有前导和后面的空白字符,如\n, \r, \t, \f,空格。

为了获得更大的灵活性,请使用以下方法

只删除前导空白字符: 只移除尾随的空格字符: 删除特定的空白字符:my_string.strip('\n')或my_string.lstrip('\n\r')或my_string.rstrip('\n\t')等。

更多细节可以在文档中找到。

一种方法是使用.strip()方法(删除所有周围的空白)

str = "  Hello World  "
str = str.strip()
**result: str = "Hello World"**

请注意,.strip()返回字符串的副本,并且不会更改下划线对象(因为字符串是不可变的)。

如果您希望删除所有空白(不仅仅是修剪边缘):

str = ' abcd efgh ijk  '
str = str.replace(' ', '')
**result: str = 'abcdefghijk'

这也可以用正则表达式来实现

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()。

好吧,作为一个初学者,看到这个帖子让我头晕目眩。于是我想到了一个简单的捷径。

虽然str.strip()可以移除开头和结尾的空格,但它对字符之间的空格没有任何作用。

words=input("Enter the word to test")
# If I have a user enter discontinous threads it becomes a problem
# input = "   he llo, ho w are y ou  "
n=words.strip()
print(n)
# output "he llo, ho w are y ou" - only leading & trailing spaces are removed 

相反,使用str.replace()更有意义,错误更少,更切题。 下面的代码可以泛化str.replace()的使用

def whitespace(words):
    r=words.replace(' ','') # removes all whitespace
    n=r.replace(',','|') # other uses of replace
    return n
def run():
    words=input("Enter the word to test") # take user input
    m=whitespace(words) #encase the def in run() to imporve usability on various functions
    o=m.count('f') # for testing
    return m,o
print(run())
output- ('hello|howareyou', 0)

在diff. functions中继承相同的函数时可以很有帮助。