traductor significado serbio ruso latino glagolítico español cirílico cirilico antiguo alfabeto java regex validation unicode internationalization

java - significado - Validación alfabeto cirílico



alfabeto ruso antiguo (2)

Tienes que usar la expresión regular Unicode. por ejemplo /p{L}+ para cualquier letra Unicode. Para obtener más información en el documento de Java para java.util.Pattern hay una sección llamada soporte Unicode . Además, hay detalles aquí: enlace

Hoy me encontré con un defecto interesante, el problema es que tengo una implementación de mi aplicación web en Rusia y el valor del nombre "Наталья" no está volviendo verdadero como alphaNumeric en el siguiente método. ¡Curioso por alguna información sobre cómo las personas abordarían un problema como este! - Duncan

private boolean isAlphaNumeric(String str) { return str.matches("[//w-'']+"); }


En mi caso, debo verificar si es un nombre escrito en ruso.

Terminé con esto:

private static final String ruNameRegEx = "[А-ЯЁ][-А-яЁё]+";

y para el nombre completo:

private static final String ruNamePart = "[А-яЁё][-А-яЁё]+"; private static final String ruFullNameRegEx = "//s*[А-ЯЁ][-А-яЁё]+//s+(" + ruNamePart + "//s+){1,5}" + ruNamePart + "//s*";)";

El último cubre algunos casos complejos:

public class Test { Pattern ruFullNamePattern = Pattern.compile(ruFullNameRegEx); @Test public void test1() { assertTrue(isRuFullName("Иванов Василий Иванович")); } @Test public void test2() { assertTrue(isRuFullName(" Иванов Василий Акимович ")); } @Test public void test3() { assertTrue(isRuFullName("Ёлкин Василий Иванович")); } @Test public void test4() { assertTrue(isRuFullName("Иванов Василий Аксёнович")); } @Test public void test5() { assertFalse(isRuFullName("иванов василий акимович")); } @Test public void test6() { assertFalse(isRuFullName("Иванов С.В.")); } @Test public void test7() { assertTrue(isRuFullName("Мамин-Сибиряк Анна-Мария Иоановна")); } @Test public void test8() { assertTrue(isRuFullName("Хаджа Насредин Махмуд-Азгы-Бек")); } @Test public void test9() { assertTrue(isRuFullName("Хаджа Насредин ибн Махмуд")); } private boolean isRuFullName(String testString) { Matcher m = ruFullNamePattern.matcher(testString); return m.matches(); } }