Pythonで複数の区切り文字を使った文字列分割

Pythonでは、split()メソッドを使って文字列を分割できますが、1種類の区切り文字にしか対応していません。複数の区切り文字で分割する場合、正規表現モジュールreを使用してre.split()メソッドを活用するのが効果的です。

import re
text = "apple; orange, banana"
result = re.split(r'; |, ', text)
print(result)  # ['apple', 'orange', 'banana']

この例では、'; '', 'で文字列を分割し、空白を考慮した複数の区切り文字を使用しています。

複雑な区切り文字の処理

複数の区切り文字を組み合わせて分割したい場合、[ ]内に複数の文字を指定することが可能です。また、より複雑なパターンで区切りたい場合には、正規表現の柔軟性を活かすことができます。

# 複数の区切り文字例: ; , * \n
text = "apple, orange; banana* grape\nmango"
result = re.split(r'; |, |\*|\n', text)
print(result)  # ['apple', 'orange', 'banana', 'grape', 'mango']

正規表現で区切り文字を保持する

区切り文字を結果に含めたい場合、正規表現の「後読み」や「先読み」を使うことができます。

text = "apple; orange, banana"
result = re.split(r'(?<=; )|(?<=, )', text)
print(result)  # ['apple; ', 'orange, ', 'banana']

この方法により、区切り文字自体を保持しながら分割を行うことが可能です。

まとめ

複数の区切り文字で文字列を分割するには、正規表現を使用することが最適です。re.split()を使うことで、柔軟に区切り文字を指定し、複雑なパターンに対応した分割が可能となります。