正規表現パターンを区切り文字として文字列を分割する(Pattern.split)

Pattern クラスの split メソッドは、対象の文字列を区切り文字として正規表現パターンを使って分割し、分割された文字列を要素とするリストを取得します。ここでは Python の正規表現で split メソッドを使って文字列を正規表現パターンで分割する方法について解説します。

(Last modified: )

splitメソッドの書式と使い方

Pattern クラスの split メソッドは、対象の文字列を指定した正規表現パターンで分割し、分割された文字列を要素とするリストを取得します。書式は次の通りです。

Pattern.split(string, maxsplit=0)

1 番目の引数に対象の文字列を指定します。省略可能な 2 番目の引数には最大分割回数を指定します。デフォルトの値は 0 で、この場合は分割回数に制限がありません。

次のサンプルを見てください。

import re

msg = 'おはよう。朝食は、パン、チーズ、コーヒー、です。'
pattern = re.compile(r'。|、')

result = pattern.split(msg)
print(result)

>> ['おはよう', '朝食は', 'パン', 'チーズ', 'コーヒー', 'です', '']

for s in result:
    print(s)

>> おはよう
>> 朝食は
>> パン
>> チーズ
>> コーヒー
>> です
>> 

正規表現パターンとして「。」か「、」のどちらかにマッチするパターンを指定しました。対象の文字列をパターンにマッチする区切り文字で分割し、分割された文字列を要素とするリストを取得することができました。

なおパターンが先頭や末尾にマッチする場合、先頭の場合はリストの先頭、末尾の場合はリストの末尾に空文字の要素が含まれます。

分割回数を指定する

split メソッドの 2 番目の引数に最大分割回数を指定することができます。例えば 2 を指定した場合は対象の文字列を最大で 2 回分割し、結果として 3 つの部分文字列を要素とするリストを取得します。

次のサンプルを見てください。

import re

msg = 'おはよう。朝食は、パン、チーズ、コーヒー、です。'
pattern = re.compile(r'。|、')

result = pattern.split(msg, 2)
print(result)

>> ['おはよう', '朝食は', 'パン、チーズ、コーヒー、です。']

最大分割回数に 2 を指定したので、対象の文字列を 3 つに分割し、それぞれの文字列を要素として持つリストを取得しました。最大分割回数で指定した回数分割したあと、残りの文字列はまとめて最後の部分文字列として取得します。

-- --

Python の正規表現で split メソッドを使って文字列を正規表現パターンで分割する方法について解説しました。

( Written by Tatsuo Ikura )

Profile
profile_img

著者 / TATSUO IKURA

プログラミングや開発環境構築の解説サイトを運営しています。