【Python】文字列から<特定の文字列>を検索・抽出・置換・削除したい

何度も調べているので備忘録的にここで記事にしておきます。

 

ある文字列から特定の文字列があるか検索する、判定する、抽出する・削除する方法です。

 

 

Python の環境

環境はすべて「Python 3.6」です。

OS は CentOS 7 を利用していますが、プログラムは「Python 3.6」をインストールした仮想環境でやっています。

 

ある文字列に特定の文字列があるか判定したい

これはあるかないか「判定」するだけです。

文字列「aaaaaatestaaaaaaaa」の中に「test」という文字列があるかどうか判定し、あれば「true」を返し、なければ「false」を返します。

 

# 検索したい文字列
target_word = 'test'

words = 'aaaaaaatestaaaaaaaaa'

 

# 文字列に検索したい文字列が含まれているか
if target_word in words:

    print('ある')

else:

    print('ない')

 

 

文字列を検索・抽出したい

ある文字列の中に、特定の文字列があるのか検索・抽出したい場合です。

 

search 関数

search 関数は、文字列全てを検索して、

  • 抽出したい文字列が存在するかどうかを判定する
  • マッチする文字列が複数あっても最初の文字列しか返さない
  • マッチした文字列を返す
  • マッチした文字列の開始位置を返す
  • マッチした文字列の終了位置を返す
  • マッチした文字列の範囲を返す

正規表現を使用するため「re」ライブラリをインポートします。(import re)

 

 

match 関数

match 関数は search 関数と似ています。

match 関数と search 関数の違いは、

  • match 関数 ← 文字列の先頭でマッチするパターンがあるかどうか判定
  • search 関数 ← 文字列全体からマッチするパターンがあるかどうか判定

です。

 

やれることは search 関数とほぼ一緒です。

  • 抽出したい文字列が存在するかどうかを判定する
  • マッチした文字列を返す
  • マッチした文字列の開始位置を返す
  • マッチした文字列の終了位置を返す
  • マッチした文字列の範囲を返す

 

 

特定の文字列を削除したい

replace 関数と sub 関数が使えます。

 

replace 関数

文字列.replace('変換元','変換後')

 

sub 関数

import re ← 正規表現

text.txt = '文字列'

re.sub('正規表現','変換後',文字列)

 

■条件

文字列型のみ使用可能

数値型、バイト型などは使用不可能

 

参考サイト

Pythonでの正規表現の使い方

https://qiita.com/wanwanland/items/ce272419dde2f95cdabc

 

 

 

Posted by 100%レンタルサーバーを使いこなすサイト管理人

コメントを残す

メールアドレスが公開されることはありません。