Python: 正規表現でマッチした文字列をリストとして取得 re.findall()
マッチ文字列をリストで取得 findall()
Pythonの正規表現で、 マッチしたすべての文字列をリストとして取得するには、 reモジュールのfindall()関数を使います。
書式
findall(パターン, 検索対象文字列 [, flags=0])
戻り値はリストで、マッチしたすべての文字列が各要素に入っています。 マッチしなかった場合は空のリストが戻ります。
次のコードでは、HTMLの li 要素の内容を取得して リストとして受け取ります。
import re # パターン p = "<li>(.*?)</li>" # 検索対象文字列 s = """<ul> <li>リストA</li> <li>リストB</li> <li>リストC</li> </ul> """ # 検索 li = re.findall(p, s) print(li)
実行結果
['リストA', 'リストB', 'リストC']
このように、 findall()関数を実行するだけでマッチ内容がリストとして取得できます。 この後に何かしらの処理をする場合も扱いやすいので、 複数マッチする場合は findall()関数がおすすめです。