2010-12-15 11 views
6

İngilizce bir kelimeyi eşleştirmek için [a-zA-Z]+ modelini kullanırdım.Herhangi bir dilde bir sözcükle eşleşen bir java düzenli ifadesi nasıl oluşturulur?

Herhangi bir dilde bir sözcükle eşleşecek düzenli bir ifadenin nasıl yazılacağı var mı? Bu kelime, ščžé... gibi karakterler içeriyor olsa bile. Dünyada hangi karakterlerin var olabileceğine dair hiçbir fikrim yok, bu yüzden bu kadar saf [a-zA-Zščžé]+ yeterli olacağını düşünmüyorum ...

Bu ifadeyi yazmanın daha iyi bir yolu var mı?

cevap

11

Pattern javadoc, \p{L}+'a göre, bir Unicode harfleri dizisi eşleşmelidir. ve Unicode kategorisinde L). Muhtemelen mümkün olan en geniş tanım budur, ancak diğer kategorileri eklemek isteyip istemediğinize karar vermek için unicode categories list 'a bakmak isteyebilirsiniz (örneğin, "Sayı Harfli" denilen bir tane vardır).

0

Genellikle unicode karakter kodu bir göz atın ve ne varsa özel karakter aralığıdır eklemek için bazı unicode karakter

[a-zA-Z\u0000-\u1111] 

veya

[a-zA-Zš-é] 

aralıkları Yani var kullanırsınız hedef dil

+0

Bu, Palo'nun "Dünyada hangi karakterlerin var olabileceğine dair hiçbir fikrim yok" hakkındaki endişesine göre, bu çok kesin bir şey değil. Hala bazı karakterler eksik olurdu –

+0

@ Lukas: iyi bir nokta sadece bir hedef dili olduğunda geçerlidir. artı Michael cevap çok daha iyi ;-) – RageZ

+0

Evet, '\ p {L} +' da bilmiyordum. Bir şey öğrendim! :) –

İlgili konular