Sadece regex en kullanmayı öğreniyorum:Regex en iyi uygulamaları
Ben <:==]:>
ve <:==}:>
tarafından sınırları çizilmiş iki farklı tür bölüme ayrılmıştır bir metin dosyasında okuyorum. Ben bir ]
veya }
yüzden sadece yapamaz
pattern.compile("<:==]:>|<:==}:>"); pattern.split(text)
Bunu yapmak olsun her bölüm için bilmek gerekir:
pattern.compile("<:=="); pattern.split(text)
çalıştığını ve o zaman sadece ilk karakter bakabilirsiniz her bir alt dize içinde, ama bu bana özensiz görünüyor ve sanırım ben sadece ona başvuruyorum çünkü tam bir şey kavramak değil regex hakkında kavramak gerekir:
Burada en iyi uygulama ne olurdu? Ayrıca, her bir sınırlayıcı ile başlayacak şekilde sonuçlanan dizgelerde sınırlayıcıdan ayrılırken bir dizgiyi ayırmanın herhangi bir yolu var mıdır?
DÜZENLEME: dosyası bu gibi dışarı atılır:
Old McDonald had a farm
<:==}:>
EIEIO. And on that farm he had a cow
<:==]:>
And on that farm he....
Benim ilk çözüm (bir yakalama grubundaki sınırlayıcı içine) (Python gibi diğer diller çalışmış olurdu) Java çalışmamasına görüntülenir, bu yüzden bu yeniden düşünmek gerekir. Küçük bir örnek dosya verebilir misiniz? Tam olarak bölümlerin nasıl sınırlandığını anladığımdan emin değilim. Sınırlayıcı çiftlerle çevreleniyorlar mı, yoksa bir sınırlayıcıdan sonra bir bölüm çalışıyor ve bir sonraki sınırlayıcıyla bitiyor mu? –
@TimPietzcker Evet Aynısını gerçekleştirdim. Dosyanın nasıl oluşturulduğuna dair bir örnek için düzenlememe bakın. Bunlar, sınırsız çiftler değildir, her birinin sonu, bir sonrakiin başlangıcı ile işaret edilir. Ayrıca, <:?:> etiketinin diğer birçok tipte işaret ettiğine dikkat etmeliyim – drewmoore
Peki, çıktı olarak tam olarak ne istiyorsunuz? Metin bölümü ya bir ']' veya '}' ile birlikte mi? Eğer öyleyse, sınırlandırılmamış olan ilk/son bölüm için ne istiyorsunuz? Metnin bölümüne ihtiyacınız var mı yoksa sadece sınırlayıcıları almak için yeterli mi? – OGHaza