Warum funktioniert der folgende Code nicht mit indischen Sprachen?Java-REGEX-Code zur Validierung von indischen Schriftzeichen funktioniert nicht?
System.out.println(Charset.forName("UTF-8").encode("అనువాద")
.asCharBuffer().toString().matches("\\p{L}+"));
System.out.println(Charset.forName("UTF-8").encode("स्वागत")
.asCharBuffer().toString().matches("\\p{L}+"));
System.out.println(Charset.forName("UTF-8").encode("நல்வரவு")
.asCharBuffer().toString().matches("\\p{L}+"));
Der gesamte obige Code gibt false zurück. Was ist das Problem mit dieser Regex? Wie kann man einen Unicode-Charakter in der Welt validieren?
Sie sollten tun "". Übereinstimmungen ("\\ p {L} +") '. Stellen Sie außerdem sicher, dass sowohl der Editor als auch der Compiler den gleichen Zeichensatz verwenden (bester UTF-8). –
Hallo Joop, ich habe dafür gesorgt, dass der Compiler und der Editor UTF-8 benutzen. Aber immer noch "అనువాద". Übereinstimmungen ("\\ p {L} +") ergibt false. – suren
Verwenden Sie '" (\\ p {L} | \\ p {M}) + "' oder besser @stem '' [\\ pL \\ pM] + "', wobei auch diakritische Zeichen als gültig gezählt werden. –