Python'da yinelemeli regexp uyumu nasıl gerçekleştirilebileceğiyle ilgileniyorum (herhangi bir örnek bulamadım :() Örneğin, "foo (bar (bar (foo)" gibi "parantez dengeli" dizgisiyle eşleşen bir ifade nasıl yazılır))) (foo1) bar1" ne yazık ki Python'ın regexpleri özyinelemeli kalıplarını destekleyen sanmıyorumPython'da nasıl tekrarlı bir regexp uygulanabilir?
cevap
muhtemelen pyparsing gibi bir şeyle ayrıştırabilir
. Sen bunu yapamazsın http://pyparsing.wikispaces.com/
Şunu söyleyebilirdim, neyse ki ... – pillmuncher
Python, yinelemeli regexp'i desteklemez.
Siz pyparsing
#!/usr/bin/env python
from pyparsing import nestedExpr
import sys
astring=sys.argv[1]
if not astring.startswith('('):
astring='('+astring+')'
expr = nestedExpr('(', ')')
result=expr.parseString(astring).asList()[0]
print(result)
kullanabilirsiniz Koşu o verir:
% test.py "foo(bar(bar(foo)))(foo1)bar1"
['foo', ['bar', ['bar', ['foo']]], ['foo1'], 'bar1']
Bu eski bir sorudur, ancak aramaların aracılığıyla buraya gelen insanlar için:
yapar piton için alternatif düzenli ifade modülü varözyinelemelerini destekleyin: https://pypi.python.org/pypi/regex
'da çok daha güzel iyileştirmeler var..
Başar yeni motor! Sonunda iyi özyinelik :) Teşekkürler. –
Bu motor bir noktada python'un stdlib'iyle birleştirilecek mi? Bununla ilgili hiç bir görüşme bulamıyorum. –
Bu cevap bir örnekten gerçekten yararlanır! :) –
- 1. Kalıtım C# nasıl uygulanabilir?
- 2. RegExp
- 3. Nümerik dizi veya pandalarla pythonda rutini sadeleştirme
- 4. Bir sdbm karma işlevi C# nasıl uygulanabilir?
- 5. OpenSocial uygulanabilir bir API seçeneğidir?
- 6. regexp nasıl tırnak açmayın?
- 7. TypeScript'te RegExp
- 8. Bir veseyi regexp ile değiştirin
- 9. Açısal ve tekrarlı yönlendirme yönergesi
- 10. regexp-me kütüphanesi nasıl kullanılır?
- 11. VBScript - regexp
- 12. regexp dışlama
- 13. SDL Tridion: Bir sayfayı tekrarlı olarak yayınlamak için nasıl zamanlayabilirim?
- 14. Bir matematiksel operatör Ciltleme yoluna uygulanabilir mi?
- 15. Bağlantılı Listeyi Kopyala Tekrarlı olarak
- 16. Java Komut Dosyası RegExp
- 17. oluşturma monad'ların v Uygulanabilir Functors
- 18. Bir regexp eşleşmesi için bir dizi [String] nasıl sorgulanır?
- 19. Rust'ta tekrarlı kapatma yapmak mümkün mü?
- 20. geany içinde regexp adlı grupların yerini bulun regexp
- 21. Python'da Bileşilebilir Regexp
- 22. Javascript'in ilginç testi RegExp
- 23. JavaScript RegExp uyumluluğu
- 24. Regexp pattern yan tümce
- 25. Varsayılan regexp davranışı Perl?
- 26. RegExp yerine desenle eşleşmiyor
- 27. WhatsApp web RegExp sorunu
- 28. robots.txt için Regexp
- 29. Tekrarlı Girdi Girişi 'Standart Girdi' Standart Giriş
- 30. model regexp ile tam olarak nasıl belirtilir
Bunun için bir ayrıştırıcı yazardım. – Geo
@Tempus, ya da Tony gelecek. http://stackoverflow.com/a/1732454/193892 –
@AmigableClarkKant tamam, Tony'yi tanıyorum. O bir arkadaş. – Geo