Bir kod biçimlendirici yazıyorum ve biraz yardıma ihtiyacım var. Kod bloklarını bulmalıyım ve düzenli ifadeler kullanmak istiyorum. Ben biçimine ihtiyaç kod temelde böyle görünür:İç içe geçmiş Kod Bloklarını bulmak için RegEx
ile başlamak blokları bulmak {bittiğini} Bu ifade ile am güçlüKEYWORD name {
word
word
...
}
:
[{](.*?)[}]
Ama bilmiyorum İfadeye "KEYWORD name"
bölümünün nasıl eklenir. Her ikisi de ;
, {
ve }
dışındaki herhangi bir karakteri içerebilen özel dizelerdir.
Başka bir sorun, kod bloklarımın yuvalanabilmesidir. Bu özelliği nasıl ekleyeceğimi bilmiyorum.
Kod bloklarınızın iç içe geçip içilmeyeceğini bilmiyorum, ancak eğer varsa, normal ifadeniz çalışmayacaktır. – Jordi
Oh! Haklısın! Bunu henüz test etmedim. Ama iç içe olmalılar ... –
Yuvalama (keyfi derinliklere) dahil edilir edilmez, regex kullanımı zorlaşır. Kesin olarak, iç içe geçmiş yapılar düzenli değildir ve bu nedenle düzenli ifadelerle eşleşmek için uygun değildir. Bazı modern regex tatları (örn. PCRE, Perl, .NET) yinelemeli eşleştirmeyi mümkün kılar, ancak Java bunlardan değildir. Bu yüzden muhtemelen bu iş için bir çözümleyici oluşturmalı/kullanmalısınız. –