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()関数がおすすめです。

Python