2010-09-20 16 views

Respuesta

8

Cambiar la expresión regular a abc(.*)def(.*)pqr(.*)xyz y los paréntesis, quedará obligado automáticamente a

Ver la documentación del Pattern class, especialmente Groups and Capturing, para más información.

Código de ejemplo:

final String needle = "abc(.*)def(.*)pqr(.*)xyz"; 
final String hayStack = "abcXdefYpqrZxyz"; 

// Use $ variables in String.replaceAll() 
System.out.println(hayStack.replaceAll(needle, "_$1_$2_$3_")); 
// Output: _X_Y_Z_ 


// Use Matcher groups: 
final Matcher matcher = Pattern.compile(needle).matcher(hayStack); 
while(matcher.find()){ 
    System.out.println(
     "A: " + matcher.group(1) + 
     ", B: " + matcher.group(2) + 
     ", C: " + matcher.group(3) 
    ); 
} 
// Output: A: X, B: Y, C: Z 
1

Aquí es una expresión regular que podría hacer lo que necesita.

abc(\\d*)def(\\d*)pqr(\\d*)xyz 

Pero, deberíamos tener más ejemplos de cadenas de entrada, y lo que debería coincidir.

Cuestiones relacionadas