2012-09-13 14 views
5

Estoy intentando dividir una cadena en Java. Las divisiones deben ocurrir entre dos caracteres, uno de los cuales es alfabético (a-z, A-Z) y el otro numérico (0-9). Por ejemplo:Coincidencia de RegEx entre caracteres

String s = "abc123def456ghi789jkl"; 
String[] parts = s.split(regex); 
System.out.println(Arrays.deepToString(parts)); 

La salida debe ser [abc, 123, def, 456, ghi, 789, jkl]. ¿Alguien puede ayudarme con una expresión regular que coincida?

¡Gracias de antemano!

Respuesta

9

Se puede utilizar una combinación de look-ahead and look-behind:

String s = "abc123def456ghi789jkl"; 
String regex = "(?<=\\d)(?=[a-z])|(?<=[a-z])(?=\\d)"; 
String[] parts = s.split(regex); 
System.out.println(Arrays.deepToString(parts)); 
+0

Gracias, funciona para mí! – hielsnoppe

Cuestiones relacionadas