Pythonにおいて、文字列の一部を削除する方法について紹介します。
本記事では、以下の内容を紹介しています。
この記事で分かること
- 完全一致する文字列を削除する方法【replace】
- 部分一致する文字列を削除する方法【正規表現】
- スペース(空白)を削除する方法【stripなど】
- 改行を削除する方法
- n番目の文字を削除する方法
スポンサーリンク
完全一致する文字列を削除【replace】
文字列のreplace( )メソッドを用いることで、完全一致する文字列を削除できます。
replace( )メソッドは、文字列の一部を置換するメソッドですが、置換後の文字列を空文字にすることで、文字を削除できます。
replace( )メソッドの第一引数には"置換対象文字列"、第二引数には"置換後文字列"、第三引数には"置換回数"を指定します。
"置換回数"は省略可能です。"置換回数を省略した場合は、置換対象文字列をすべて置き換えます。
書き方
文字列.replace( 置換対象文字列, 置換後文字列, 置換回数 )
以下、サンプルコードです。
fruits_1 = 'Apple Banana Orange Grape Apple Lemon Apple'
fruits_2 = fruits_1.replace('Apple', '')
print(fruits_2)
# Banana Orange Grape Lemon
置換回数を指定した場合のサンプルコードです。
fruits_1 = 'Apple Banana Orange Grape Apple Lemon Apple'
fruits_2 = fruits_1.replace('Apple', '', 2)
print(fruits_2)
# Banana Orange Grape Lemon Apple
部分一致する文字列を削除【正規表現】
正規表現を用いて文字列を削除する方法を紹介します。
正規表現とは、文字列をパターンで表現する記述方法です。
正規表現を用いることで、指定したパターンに当てはまる文字列を検索することができます。
Pythonの標準ライブラリである、"reモジュール"を用いることで、正規表現を扱うことができます。
reモジュールのsub( )関数を用いることで、マッチした文字列を置換できます。
書き方
re.sub( パターン, 置換後の文字列, 検索対象の文字列, 最大置換回数)
正規表現の基本的な使用方法については、下記の記事で紹介しています。
以下、reモジュールのsub( )関数で文字列を削除するサンプルコードです。
"A"と"e"の間に、任意の小文字アルファベットがある文字列パターンの場合に、文字列を削除しています。
import re
fruits_1 = 'Apple Banana Orange Grape Apple Lemon Apple'
fruits_2 = re.sub(r'A[a-z]+e', r'', fruits_1)
print(fruits_2)
# Banana Orange Grape Lemon
置換回数を指定した例です。
import re
fruits_1 = 'Apple Banana Orange Grape Apple Lemon Apple'
fruits_2 = re.sub(r'A[a-z]+e', r'', fruits_1, 2)
print(fruits_2)
# Banana Orange Grape Lemon Apple
reモジュールのsubn( )関数を用いると、置換後の文字列と、置換された文字列の個数のタプルを取得できます。
import re
fruits_1 = 'Apple Banana Orange Grape Apple Lemon Apple'
fruits_2 = re.subn(r'A[a-z]+e', r'', fruits_1)
print(fruits_2)
# (' Banana Orange Grape Lemon ', 3)
スポンサーリンク
スペース(空白)を削除する方法
スペース(空白)を削除する方法について紹介します。
文字列中のすべてのスペースを削除する場合は、replace( )メソッドで削除できます。
fruits_1 = ' Apple Banana Orange Grape Apple Lemon Apple '
fruits_2 = fruits_1.replace(' ', '')
print(fruits_2)
# AppleBananaOrangeGrapeAppleLemonApple
print(repr(fruits_2))
# 'AppleBananaOrangeGrapeAppleLemonApple'
サンプルコードでは、スペースが削除されたことを分かりやすくするために、Pythonの組み込み関数であるrepr( )関数を使用しています。
両側(先頭、末尾)のスペースを削除【strip】
文字列のstrip( )メソッドを用いることで、文字列の先頭、末尾のスペースを削除することができます。
以下、サンプルコードです。
fruits_1 = ' Apple Banana Orange Grape Apple Lemon Apple '
fruits_2 = fruits_1.strip()
print(fruits_2)
# Apple Banana Orange Grape Apple Lemon Apple
print(repr(fruits_2))
# 'Apple Banana Orange Grape Apple Lemon Apple'
文字列の先頭、末尾のスペースが削除されています。
文字列中のスペースは削除されません。
先頭のスペースを削除【lstrip】
文字列のlstrip( )メソッドを用いることで、文字列の先頭のスペースを削除することができます。
以下、サンプルコードです。
fruits_1 = ' Apple Banana Orange Grape Apple Lemon Apple '
fruits_2 = fruits_1.lstrip()
print(fruits_2)
# Apple Banana Orange Grape Apple Lemon Apple
print(repr(fruits_2))
# 'Apple Banana Orange Grape Apple Lemon Apple '
文字列の先頭のスペースが削除されています。
末尾のスペースを削除【rstrip】
文字列のrstrip( )メソッドを用いることで、文字列の先頭のスペースを削除することができます。
以下、サンプルコードです。
fruits_1 = ' Apple Banana Orange Grape Apple Lemon Apple '
fruits_2 = fruits_1.rstrip()
print(fruits_2)
# Apple Banana Orange Grape Apple Lemon Apple
print(repr(fruits_2))
# ' Apple Banana Orange Grape Apple Lemon Apple'
文字列の末尾のスペースが削除されています。
スポンサーリンク
改行を削除する方法
文字列中の改行を削除する方法について紹介します。
改行は、エスケープシーケンス "\n" で表わされます。
文字列のreplace( )メソッドを用いて、"\n"を空文字に置き換えることで、改行を削除できます。
以下、サンプルコードです。
fruits_1 = ' Apple \n Banana\t\n Orange \n Grape '
print(fruits_1)
# Apple
# Banana
# Orange
# Grape
print(repr(fruits_1))
# ' Apple \n Banana\t\n Orange\u3000\n Grape '
fruits_2 = fruits_1.replace('\n', '')
print(fruits_2)
# Apple Banana Orange Grape
print(repr(fruits_2))
# ' Apple Banana\t Orange\u3000 Grape '
もとの文字列には、例として、改行(\n)、タブ(\n)、全角スペース(\u3000)、半角スペース(' ')を含めています。
また、改行が削除されたことを分かりやすくするために、Pythonの組み込み関数であるrepr( )関数を使用しています。
別の方法として、文字列のsplitlines( )メソッドで改行単位でリストの要素に変換したあとに、再度1つの文字列に連結する方法もあります。
fruits_1 = ' Apple \n Banana\t\n Orange \n Grape '
print(fruits_1)
# Apple
# Banana
# Orange
# Grape
print(repr(fruits_1))
# ' Apple \n Banana\t\n Orange\u3000\n Grape '
fruits_2 = ''.join(fruits_1.splitlines())
print(fruits_2)
# Apple Banana Orange Grape
print(repr(fruits_2))
# ' Apple Banana\t Orange\u3000 Grape '
> fruits_1.splitlines( )
splitlines( )メソッドにより、1つの文字列が改行の単位でリストの要素に変換されます。
[' Apple ', ' Banana\t', ' Orange\u3000', ' Grape ']
このリストの要素を結合することで、改行を削除することができます。
n番目の文字を削除する方法
n番目の文字を削除する方法について紹介します。
文字列のスライスにより、指定した範囲の文字列を削除することができます。
文字列のスライスについては、下記の記事で紹介しているので併せて参考にしてみてください。
インデックスを指定することで、指定した範囲の文字列を抽出することができます。
s = 'Python'
res = s[2:4]
print(res)
# th
以下、サンプルコードです
スライスを用いて、n番目の文字列を、長さ l だけ削除しています。
s = 'Python'
n = 2
l = 2
res= s[:n] + s[n+l:]
print(res)
# Pyon
スポンサーリンク