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()
を使うことで、柔軟に区切り文字を指定し、複雑なパターンに対応した分割が可能となります。