Python: 正規表現で文字列を分割する re.split()
正規表現による分割 re.split()
Pythonで正規表現による文字列の分割処理を行う場合は、 reモジュールの split() 関数を使います。
書式
split(パターン, 検索対象文字列, maxsplit=0, flags=0)
戻り値はパターンによって分割された文字列のリストです。 パターンマッチしない場合は、 要素数1つのリストとして検索対象文字列がそのまま返って来ます。
次のコードは改行コードで文字列を分割します。
「\r\n」「\n」のどちらにも対応できるようにパターンを「\r?\n」としています。
import re # パターン p = "\r?\n" s = "ab\ncd\r\nef\r\ngh\nij" # 正規表現で分割 li = re.split(p, s) print(li)
改行で分割された文字がリストとして取得できています。
実行結果
['ab', 'cd', 'ef', 'gh', 'ij']
maxsplitを指定した場合
上と同じコードで、今度は maxsplit(最大分割数)を指定してみます。
import re
# パターン
p = "\r?\n"
s = "ab\ncd\r\nef\r\ngh\nij"
li = re.split(p, s, maxsplit=2)
print(li)
実行結果
['ab', 'cd', 'ef\r\ngh\nij']
「maxsplit=2」を指定した場合は、 最初の2つの要素にパターンで分割された文字列が入り、 残りの文字列は3番目の要素にまとめて入っています。