2017-04-12 5 views
0

あり、私は最後の正規表現... を使用するのでしばらくされて、私は0と1の文字列を持っています:正規表現

0010001110011000 

をそして私は1ブロックで、それを分割する必要があり(2以上の連続する1秒):

001000 # These are the blocks what matters to me 
00 
000 

私はそれを行う方法が不思議です。

l = re.compile("([1])\1+").split(s) 

をしかし、それは適切ではない。

私はPythonで、このような何かをしようとしていました。

ありがとうございます。

答えて

3

あなたは

re.split(r'1{2,}', s) 

regex demoを参照してください使用することができます。ここでは、1{2,}は2以上(limiting quantifier{2,}1の数字と一致します。

最初に1が表示される場合は、空の要素、たとえばfilter(None, result)を削除する必要があります。

Python demoを参照してください。

+0

これは「11+」と同じですか? – pceccon

+0

はい、 '1 {2、}'は2以上の '1'を意味します。 –