1

これはサンプル入力です:

(a1 b2 c3)

' '、'('、')' で分割すると、次の出力が得られます。

['(', 'a1', ' ', 'b2', ' ', 'c3', ')']

それを行うPythonismの方法は何ですか?

4

2 に答える 2

3

Python の正規表現モジュールを使用します。

>>> import re
>>> re.split(r'(\w+)', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']

または、findallorokusakiの答えのように、文字クラス(_単語文字としてもカウントされます):

>>> re.findall(r'\W+|\w+', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']

(または、 、 、でのみ分割することを明示したい場合):

>>> re.split(r'([^\(\) ]+)', '(a1 b2 c3)')
['(', 'a1', ' ', 'b2', ' ', 'c3', ')']
于 2012-12-30T02:31:28.503 に答える
0
>>> import re
>>> re.findall(r'[a-zA-Z0-9]+|[^a-zA-Z0-9]', '(a1 a2 a3)')
['(', 'a1', ' ', 'a2', ' ', 'a3', ')']
于 2012-12-30T02:29:07.090 に答える