文字列 文法・環境

【Python】文字列を削除する方法【replace、strip、正規表現】

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モジュール】

以下、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

スポンサーリンク

-文字列, 文法・環境
-,