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番目の要素にまとめて入っています。