'daki bir karakter arasındaki tüm rakamları bul Bu kolay bir soru olabilir ama istediğim sonucu alamıyorum!python
Ben aşağıdaki gibi bir metin var:
text = 'To get to the destination follow this direction
1. First turn left and then
text text text
2. Secondly you have to some text here
some text here
For the second instruction follow the text below:
«1. some text some text some text
text text text.
2. some text some text text text text.
3. some text some text text text text.»'
Python regex kullanıyorum ve "«" "»olduğunu" bu karakterler arasındaki tüm rakamları elde etmek istiyorum 1. 2. ve
test = re.findall(r'[«.*?](\d+)[.*?»]', text, re.DOTALL)
veya bu:
patt = re.findall(r'«.*?(\d+).*?»', text, re.DOTALL)
.
böyle bir şey denedi
ve diğerleri, ancak hiçbiri istediğimi iade etmiyor. Neyi yanlış yapıyorum?
Her iki desende de 1 rakamı başka bir rakam olmaksızın döndürülür. 2 ve 3 sayısı ne olacak?
Lookahead ve lookbehind'i kullanmanız gerektiğini düşünüyorum, aksi halde <' and '> 'sadece bir kez matematiktir, böylece sadece bir sayı alırsınız. –
Eğer lookahead veya lookbehind kullanırsam, regex'i << and >> @ tobias_k? – bettas
@Beyaz bakış için, bu durumda, evet, lookahead için - hayır. Sizin için bir çözüm bulmak amacıyla, gözcülerin ve yakalama gruplarının bir kombinasyonu üzerinde çalışıyorum. Tek bir kontrata sahip birden fazla sonuç almak düzenli ifadeyle kolay değildir, sırayla çoklu eşleşmeler yapmak daha kolay olur. –