Pythonで区切り文字(str)を指定して文字列を分割する方法
Pythonで文字列を特定の区切り文字で分割する方法は、主に2つあります。1つは文字列クラスの組み込みメソッド split() を使う方法、もう1つは正規表現モジュール re の re.split() を使う方法です。それぞれの使い方を詳しく見ていきましょう。
split()メソッドで文字列を分割する
PythonのStringクラスには split() というメソッドが用意されており、区切り文字をオプション引数として指定できます。引数を省略した場合、デフォルトの区切り文字は空白(ホワイトスペース)になります。
>>> 'aa-ab-ca'.split('-')
['aa', 'ab', 'ca']
>>> 'abc mno rst'.split(' ')
['abc', 'mno', 'rst']
このように、ハイフンやスペースなど、任意の一文字の区切り文字を指定するだけで、簡単に文字列をリストへ分割できます。
正規表現(re.split)で文字列を分割する
より柔軟な条件で分割したい場合は、re モジュールの re.split() メソッドが便利です。第1引数に区切り文字の正規表現パターン、第2引数に対象となる文字列を渡すと、分割結果がリストとして返されます。
>>> import re
>>> re.split('-', 'aa-ab-ca')
['aa', 'ab', 'ca']
>>> re.split(' ', 'abc mno rst')
['abc', 'mno', 'rst']
複数の区切り文字で分割する例
正規表現を使えば、「カンマ」と「スペース」が混在するような文字列も一度に分割できます。
>>> import re
>>> re.split('[,\s]+', 'apple, banana cherry')
['apple', 'banana', 'cherry']
まとめ
単純な区切り文字での分割には str.split() が最適です。一方、複数種類の区切り文字や複雑なパターンで分割したいケースでは、正規表現を利用できる re.split() が有効です。用途に応じて両者を使い分けることで、文字列処理を効率的に行えます。
-
Pythonで文字列を逆順にする方法|スライスとreversed()の使い方を解説
Pythonでは、文字列スライスやrange演算子を活用することで、文字列を簡単に逆順(反転)にすることができます。この記事では、代表的な2つの方法をわかりやすく解説します。 方法1:スライス記法 [::-1] を使う(推奨・高速) 最もシンプルで一般的なのが、スライス記法を使う方法です。ステップに -1 を指定するだけで、文字列を後ろから前へ一文字ずつ取り出せます。 >>> Hello[::-1] olleH >>> Halloween[::-1] neewollaH スライスの仕組み 角括弧 [] の中には、コロン「:」で区切った3つの値を指定できます
-
Pythonで文字列が英数字のみかどうかを判定する方法【isalnum()と正規表現】
Pythonでは、文字列が英数字(アルファベットと数字)のみで構成されているかどうかを簡単に判定できます。主な方法は2つあります。文字列クラスに組み込まれている isalnum() メソッドを使う方法と、正規表現を使う方法です。 isalnum()メソッドを使う方法 Pythonの文字列クラスには isalnum() というメソッドが用意されています。このメソッドを文字列に対して呼び出すと、文字列が英数字のみで構成されている場合に True を、記号などが含まれる場合には False を返します。 >>> 123abc.isalnum() True >>>