1314

Pythonで文字列から先頭と末尾の空白を削除するにはどうすればよいですか?

例えば:

" Hello " --> "Hello"
" Hello"  --> "Hello"
"Hello "  --> "Hello"
"Bob has a cat" --> "Bob has a cat"
4

12 に答える 12

1929

1 つのスペースだけですか、それともすべての連続したスペースですか? 2 番目の場合、文字列には既に.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'

ただし、スペースを 1 つだけ削除する必要がある場合は、次の方法で行うことができます。

def strip_one_space(s):
    if s.endswith(" "): s = s[:-1]
    if s.startswith(" "): s = s[1:]
    return s

>>> strip_one_space("   Hello ")
'  Hello'

str.strip()また、他の空白文字 (タブや改行など) も削除されることに注意してください。スペースのみを削除するには、削除する文字を の引数として指定できますstrip。つまり、次のようになります。

>>> "  Hello\n".strip(" ")
'Hello\n'
于 2009-04-17T19:21:29.607 に答える
279

上記の回答で指摘したように

my_string.strip()

\n\r\t\fspaceなどの先頭と末尾の空白文字をすべて削除します

より柔軟にするには、次を使用します

  • 先頭の空白文字のみを削除します:my_string.lstrip()
  • 末尾の空白文字のみを削除します。my_string.rstrip()
  • 特定の空白文字を削除します:my_string.strip('\n')またはmy_string.lstrip('\n\r')またはmy_string.rstrip('\n\t')など。

詳細については、ドキュメントを参照してください。

于 2011-05-18T04:16:47.390 に答える
131

strip空白文字に限定されません。

# remove all leading/trailing commas, periods and hyphens
title = title.strip(',.-')
于 2012-04-17T13:22:23.820 に答える
60

これにより、次の先頭と末尾の空白がすべて削除されmyStringます。

myString.strip()
于 2009-04-17T19:19:12.780 に答える
29

あなたがしたいstrip()

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

for phrase in myphrases:
    print(phrase.strip())
于 2009-04-17T19:21:14.007 に答える