2010-08-13 14 views
104

Bu dizgeyi $$ TEXT $$ sınırlayıcı olarak nerede ayırırız.Python'da bir sınırlayıcı ile bir dizeyi bölme

1.MATCHES$$TEXT$$STRING 
    2.MATCHES $$TEXT$$ STRING 
+3

http://docs.python.org/library/stdtypes.html#str.split – getekha

+6

temellerini kavramak başlamak için piton standart belgeleri okumak ve diğerleri yaptık kaç programları anlamaya çalışmak için değer Python. Alıştırma ve kopyalama/değiştirme, dili öğrenmek için harika araçlardır. –

cevap

175

string.split('$$TEXT$$')?

>>> a="1.MATCHES$$TEXT$$STRING" 
>>> a.split("$$TEXT$$") 
['1.MATCHES', 'STRING'] 

>>> a="2.MATCHES $$TEXT$$ STRING" 
>>> a.split("$$TEXT$$") 
['2.MATCHES ', ' STRING'] 

ve:

>>> [x.strip() for x in "2.MATCHES $$TEXT$$ STRING".split("$$TEXT$$")] 
['2.MATCHES', 'STRING'] 
+1

Merak ediyorum, ilk örnek (sadece split() kullanarak) ve ikinci örnek (for döngüsü ile) arasındaki fark nedir? – EndenDragon

+4

@EndenDragon Döngü, x.strip() 'işlevini otomatik olarak uygulayacak ve her iki tarafta da boşluk bırakmadan eşleşme listesini döndürecektir. Şeytan Ayrıntıda. –

4

Sen virgülle ayrılmış dosyalar için tasarlanmış ancak kolayca özel sınırlayıcınızı kullanmak için değiştirilebilir csv modülü, ilginizi çekebilir.

import csv 
csv.register_dialect("myDialect", delimiter = "$$TEXT", <other-options>) 
lines = [ "1.MATCHES$$TEXT$$STRING", "2.MATCHES $$TEXT$$ STRING" ] 

for row in csv.reader(lines): 
    ... 
İlgili konular