utiliza que para minusculas mayusculas ignorar equalsignorecase java regex string

que - ignorar mayusculas y minusculas java



Java: división de cadena cuando se encuentra una letra mayúscula (6)

Creo que esta es una pregunta fácil, pero no puedo encontrar una solución simple (digamos, menos de 10 líneas de código :)

Tengo un String como "thisIsMyString" y necesito convertirlo a String[] {"this", "Is", "My", "String"} .

Tenga en cuenta que la primera letra no está en mayúscula.


Dado que String::split toma una expresión regular, puede usar una búsqueda anticipada:

String[] x = "thisIsMyString".split("(?=[A-Z])");


Esta expresión regular se dividirá en mayúsculas, omitiendo la primera. Por lo tanto, debería funcionar para camel-case y proper-case.

(?<=.)(?=(//p{Upper})) TestText = Test, Text thisIsATest = this, Is, A, Test


Para cualquiera que se pregunte cómo es el patrón cuando el String para dividir podría comenzar con un carácter en mayúscula:

String s = "ThisIsMyString"; String[] r = s.split("(?<=.)(?=//p{Lu})"); System.out.println(Arrays.toString(r));

da: [Esto, Es, Mi, Cadena]


Prueba esto;

static Pattern p = Pattern.compile("(?=//p{Lu})"); String[] s1 = p.split("thisIsMyFirstString"); String[] s2 = p.split("thisIsMySecondString"); ...


Puede usar una expresión regular con una búsqueda positiva de ancho cero: encuentra letras mayúsculas pero no las incluye en el delimitador:

String s = "thisIsMyString"; String[] r = s.split("(?=//p{Upper})");

Y(?=X) coincide con Y seguido de X , pero no incluye X en el partido. Entonces (?=//p{Upper}) coincide con una secuencia vacía seguida de una letra mayúscula, y split usa como un delimitador.

Consulte javadoc para obtener más información sobre la sintaxis de expresiones regulares de Java.

EDITAR: por cierto, tampoco funciona con thisIsMyÜberString . Para las letras mayúsculas que no son ASCII, necesita una clase de caracteres en mayúsculas Unicode en lugar de POSIX:

String[] r = s.split("(?=//p{Lu})");


String[] camelCaseWords = s.split("(?=[A-Z])");