【Python】splitで文字列の分割

Python3のsplitメソッドで文字列を分割する方法をソースコード付きで解説します。

【文字列の分割①】カンマ区切り、空白区切り

Pythonでは、splitメソッドで文字列を分割できます。
この関数は、引数に文字列を分割する区切り文字を指定します。
すると、リスト形式で分割した結果が返ってきます。
下記のサンプルコードでは、カンマ「,」を区切り文字に指定して分割しています。

■カンマ区切り

text = "hello,world"

text2 = data.split(",")

print(text2) # ['hello', 'world']

split関数の引数に何も指定しない場合、空白(スペース、タブなど)で区切ることができます。

■空白区切り

text = "hello world"

text2 = data.split()

print(text2) # ['hello', 'world']

【文字列の分割②】正規表現で区切り文字を指定

reモジュールのsplitメソッドを使うと、正規表現にマッチした部分で区切ることができます。

# -*- coding:utf-8 -*-
import re

text = 'helloHworldA'

# 全角英字を区切り文字として、1回だけ分割
text2 = re.split('[A-Z]+', text, 1)

print(text2) # ['hello', 'worldA']

第三引数(1)は最大分割回数です。
何も指定しなければ、分割回数の上限はなくなります。

正規表現に関する基礎はこちら
1 【正規表現とは】一覧表と例題
2 【Python】正規表現の使い方 (reモジュール)

【文字列の分割③】改行で分割(splitlines)

splitlinesメソッドで改行区切りができます。

# -*- coding:utf-8 -*-
import re

text = 'hello\n world'

text2 = text.splitlines()

print(text2) # ['hello', ' world']

ちなみに、splitメソッドでも「text.split(‘\n’)」で改行区切りはできますが、複数の種類の改行文字があると同時対応できません。

【文字列の分割④】文字数で分割

スライスを使って、文字数から文字列を分割できます。

# -*- coding:utf-8 -*-
import re

text = 'hello world'

# 1~5文字目までを抽出
print(text[:5]) # hello


# 3~4文字目までを抽出
print(text[2:4]) # ll

# 7~最後尾までの文字列を抽出
print(text[6:]) # world
関連記事
1 【Python入門】文字列の処理・使い方
2 Python入門 基本文法
関連記事