Python - 文字列を分割する

区切り文字で分割: split()

区切り文字で分割する場合は split() 関数を使います。引数を省略した場合、空白文字で分割します。空白文字にはスペースや改行、タブが含まれ、連続する空白文字はまとめて処理されます。

s = '1 2  3 \n 4 \t 5'

print(s.split())
# ['1', '2', '3', '4', '5']

print(type(s.split()))
# <class 'list'>
区切り文字で分割: split()

第一引数で区切り文字を指定できます。

s = '1,2,3,4,5'

print(s.split(','))
# ['1', '2', '3', '4', '5']
区切り文字で分割: split()

第二引数で最大分割回数を指定できます。

s = '1,2,3,4,5'

print(s.split(',', 2))
# ['1', '2', '3,4,5']
区切り文字で分割: split()

区切り文字で右から分割: rsplit()

rsplit() 関数は split() の右から分割する関数です。

s = '1\n2\n3\n4\n5'

print(s.rsplit("\n", 1))
# ['1\n2\n3\n4', '5']
区切り文字で右から分割: rsplit()

改行で分割: splitlines()

splitlines() 関数は、改行で分割する関数です。改行は LF (\n)CR+LF (\r\n) が含まれます。ただし、改行には他の空白文字では分割されません。

s = '1 \n 2 \r\n 3'

print(s.splitlines())
# ['1 ', ' 2 ', ' 3']
改行で分割: splitlines()

正規表現にマッチした部分で分割: re.split()

正規表現にマッチした文字列で分割したい場合は re モジュールの split() 関数を使います。第一引数に正規表現パターン、第二引数に対象の文字列を指定します。

import re

s = 'one1two22three333four'

print(re.split('\d+', s))
# ['one', 'two', 'three', 'four']
正規表現にマッチした部分で分割: re.split()

第三引数に最大分割回数を指定することができます。

import re

s = 'one1two22three333four'

print(re.split('\d+', s, 2))
# ['one', 'two', 'three333four']
正規表現にマッチした部分で分割: re.split()

文字数で分割: スライス

文字数で分割する場合はスライスを使います。

s = 'abcdefghij'

print(s[:5])
# abcde

print(s[5:])
# fghij
文字数で分割: スライス

関連記事