これはサンプル入力です:
(a1 b2 c3)
' '、'('、')' で分割すると、次の出力が得られます。
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
それを行うPythonismの方法は何ですか?
これはサンプル入力です:
(a1 b2 c3)
' '、'('、')' で分割すると、次の出力が得られます。
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
それを行うPythonismの方法は何ですか?
Python の正規表現モジュールを使用します。
>>> import re
>>> re.split(r'(\w+)', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
または、findall
orokusakiの答えのように、文字クラス(_
単語文字としてもカウントされます):
>>> re.findall(r'\W+|\w+', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
(
または、 、 、でのみ分割することを明示したい場合
)
:
>>> re.split(r'([^\(\) ]+)', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
>>> import re
>>> re.findall(r'[a-zA-Z0-9]+|[^a-zA-Z0-9]', '(a1 a2 a3)')
['(', 'a1', ' ', 'a2', ' ', 'a3', ')']