Pythonで文字列から先頭と末尾の空白を削除するにはどうすればよいですか?
例えば:
" Hello " --> "Hello"
" Hello" --> "Hello"
"Hello " --> "Hello"
"Bob has a cat" --> "Bob has a cat"
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'
上記の回答で指摘したように
my_string.strip()
\n
、\r
、\t
、\f
spaceなどの先頭と末尾の空白文字をすべて削除します
。
より柔軟にするには、次を使用します
my_string.lstrip()
my_string.rstrip()
my_string.strip('\n')
またはmy_string.lstrip('\n\r')
またはmy_string.rstrip('\n\t')
など。詳細については、ドキュメントを参照してください。
strip
空白文字に限定されません。
# remove all leading/trailing commas, periods and hyphens
title = title.strip(',.-')
これにより、次の先頭と末尾の空白がすべて削除されmyString
ます。
myString.strip()
あなたがしたいstrip()
:
myphrases = [" Hello ", " Hello", "Hello ", "Bob has a cat"]
for phrase in myphrases:
print(phrase.strip())