Pythonお悩み解決

Pythonに関する疑問や悩みにこたえるブログです

文字列の前後から任意の文字を除去したい: stripメソッド(その2)

今回は文字列の前後から任意の文字を除去する方法を紹介します。

前後から任意の文字を除去する: strip()メソッド

文字列のstrip()メソッドを使うと、文字列の前後(先頭と末尾)から任意の文字を除去できます。

使い方は以下の通りです。

文字列.strip(除去する文字)

実際に使ってみましょう。

>>> s = '!!!こんにちは!!!'
>>> s.strip('!')
'こんにちは'

「こんにちは」の前後にはそれぞれ3つずつ!がありますが、それらが除去されたことを確認できました。

このように、文字列前後の連続する任意の文字がまとめて除去されます。

なお、このメソッドは指定した文字を除去した新しい文字列を返すため、元の文字列sはそのままです。

>>> # 元の文字列は変更されない
>>> s
'!!!こんにちは!!!'
複数の種類の文字を除去する

1つの文字だけでなく、複数の種類の文字の指定もできます。

たとえば!?を除去したい場合は、次のようにstrip('!?')とします。

>>> s = '!!!こんにちは???'
>>> s.strip('!?')
'こんにちは'

文字列の前後にある!?が除去されました。

strip()メソッドは前後の文字を除去しましたが、先頭部分の文字のみ除去したい場合や、末尾部分の文字を除去したい場合もあります。

これにはlstrip()メソッドやrstrip()メソッドが使えます。

先頭から任意の文字を除去する: lstrip()メソッド

文字列の先頭部分から任意の文字を除去したい場合lstrip()メソッドが使えます。

これは以下のように、先頭部分から指定した文字を除去した文字列を返します。

>>> s = '!?!こんにちは?!?'
>>> s.lstrip('!?')
'こんにちは?!?'

末尾から任意の文字を除去する: rstrip()メソッド

文字列の末尾部分から任意の文字を除去したい場合rstrip()メソッドが使えます。

これは以下のように、末尾部分から指定した文字を除去した文字列を返します。

>>> s = '!?!こんにちは?!?'
>>> s.rstrip('!?')
'!?!こんにちは'

なお、lstrip()lleft(左)、rstrip()rright(右)と考えれば覚えやすいです。

空白文字を除去する

これらのメソッドに引数を指定しなかった場合は、空白文字が除去対象となります。

これについてはこちらの記事で解説しています。

python-onayami.com

まとめ

  • 前後から任意の文字を除去するには strip()メソッドを使う
  • 先頭から任意の文字を除去するには lstrip()メソッドを使う
  • 末尾から任意の文字を除去するには rstrip()メソッドを使う

参考