2008-09-22 12 views

cevap

40
>>> import re 
>>> re.split(r"(\s+)", "This is the string I want to split") 
['This', ' ', 'is', ' ', 'the', ' ', 'string', ' ', 'I', ' ', 'want', ' ', 'to', ' ', 'split'] 

... sizin için hile yapacağım:

Belki de bu yardımcı olabilir Ayırıcıları da iade etmek için. Orada tek başına bunu yapmaz standart kütüphanesinde bir fonksiyondur, ancak sanmıyorum

+0

Bu, yukarıda yazdığımdan daha temiz bir çözümdür. – rossp

1

Yapmaya çalıştığınız şeyle ilgili zor kısmı gibi bir şey değil olmasıdır istiyorum bana verir bölmek için bir karakter vermek. split(), ona sağladığınız karakterdeki bir dizeyi patlatır ve bu karakteri kaldırır. işlevi neden olur)

s = "String to split" 
mylist = [] 
for item in s.split(): 
    mylist.append(item) 
    mylist.append(' ') 
mylist = mylist[:-1] 

Dağınık ama re.split içinde yakalama parantez (kullanma

+0

... – Mez

+0

sadece bu güncelledik r kodu son boşluğu boşalt. Bu, hala bunu yapmak için en iyi yol değil, sadece bunu yapmak için * bir * yolu olduğunu söyledi :) – rossp

4

"bölümü" Ben yaparım nasıl olduğu (kapat

iyi yolu düzenli ifadeler kullanmak muhtemelen geliyor herhangi bir dilde bu)

import re 
print re.split(r"(\s+)", "Your string here") 
2
durup dururken için

Aptal cevap:! sonunda var olmayan bir ekstra alan

mystring.replace(" ","! !").split("!") 
İlgili konular