Donnerstag, 8. Oktober 2009
Wort RegEx inklusive Unicode
Der reguläre Ausdruck (RegEx) \w steht für ein Zeichen eines Worts. In Java umfasst er aber nur die Buchstaben von a bis z und A bis Z, sowie die Ziffern. \w entspricht also dem regulären Ausdruck [a-zA-Z_0-9].

Im deutschen gibt es aber Umlaute und in anderen Sprachen noch ganz andere Schriftzeichen.

Mit welchem regulären Ausdruck kann man also all diese Wortzeichen bezeichnen?

Der Ausdruck für ein Unicode Wortzeichen inklusive aller Unicode Buchstaben (Letters) und Ziffern (Numbers) ist:

[\p{L}\p{N}]

Beispiel:

// RegEx, das beliebig viele Wortzeichen umfasst:
Pattern pattern = Pattern.compile("[\\p{L}\\p{N}]*");

// true, weil nur Buchstaben und Ziffern:
boolean test1 = pattern.matcher("18Mäuse").matches();

// false, wegen dem Leerzeichen:
boolean test2 = pattern.matcher("18 Mäuse").matches();


Weitere Quelle:

... comment