【Python】文字列を「〜で始まる/終わる/〜が含まれる」で抽出する方法

本記事では文字列の取得方法に関して以下の種類を見ていきます.

  • 〜で始まる文字列
  • 〜で終わる文字列
  • 〜という文字が含まれる文字列

〜で始まる文字列

特定のパターンから始まる文字列を取得したい場合,
Pythonの組み込みメソッドstartswith()を使用します.


l = ['p_match_file', 'o_file', 'p_file2']

# 文字列の最初が「p_」の文字列を取得
for i in l:
    if i.startswith('p_'):
        print(i)
p_match_file
p_file2

'任意の文字列'.startswith('始まりの文字列')とすることで,任意の文字列が「始まりの文字列」で始まっていれば真となります.
上記のコード例ではリストに含まれる各文字列についてp_で始まっているかをチェックしてp_で始まっている文字列のみを出力しています.

〜で終わる文字列

特定のパターンで終わる文字列を取得したい場合,
Pythonの組み込みメソッドendswith()を使用します.


l = ['p_match_file', 'o_file', 'p_file2']

# 文字列の最後が「file」の文字列を取得
for i in l:
    if i.endswith('file'):
        print(i)
p_match_file
o_file

指定の方法はstartswith()と同じです.

リストに含まれる各文字列についてfileで終わっているかをチェックしています.
ちゃんとp_file2が除外されていますね.

〜という文字が含まれる文字列

特定の文字が含まれる文字列を取得したい場合,Pythonのin演算子を使用します.


l = ['p_match_file', 'o_file', 'p_file2']

# 文字列中に「match」が含まれる文字列を取得
for i in l:
    if 'match' in i:
        print(i)
p_match_file

'任意の文字' in '対象文字列'とすることで,対象文字列の中に任意の文字列(=リストの各文字列の中にmatchという文字)が含まれているかを確認しています.
その結果matchという文字が含まれるp_match_fileだけが出力されています.

in演算子の判定に関して

in演算子を使った判定では指定した文字列が含まれていれば真になるので,確認したい文字のパターンをよく確認しておくことが大切です.


# in演算子は一致すれば取れてしまう
for i in l:
    if 'file' in i:
        print(i)
p_match_file
o_file
p_file2

ひとこと

文字列のパターンがシンプルであれば正規表現を使わずにサクッと判定できますね.
結局正規表現になることも多いですが・・・