2

区切り文字を削除せずに文字列を分割しようとしていますが、そうするのに問題があります。分割したい文字列は次のとおりです。

'+ {- 9 4} {+ 3 2}'

そして私はで終わりたい

['+', '{- 9 4}', '{+ 3 2}']

それでも、私が試したことはすべてうまくいきませんでした。私はこのスタックオーバーフローの投稿を調べて、Googleと同様に答えを探していました: Python split() without remove the delimiter

ありがとう!

4

1 に答える 1

4

re.split は、キャプチャされたときに区切り文字を保持します。つまり、括弧で囲みます。

import re
s = '+ {- 9 4} {+ 3 2}'
p = filter(lambda x: x.strip() != '', re.split("([+{} -])", s)) 

あなたにあげます

['+', '{', '-', '9', '4', '}', '{', '+', '3', '2', '}']

これは、IMO、ネストされた式を処理するために必要なものです

于 2013-05-16T04:40:00.723 に答える