Comprensión de los grupos de captura de expresiones regulares de Java
En este fragmento de código, utilizamos la biblioteca de expresiones regulares (regex) de Java para extraer partes de una cadena. La expresión regular se define como "(.)(\d )(.)", donde:
Ejecución de expresiones regulares
Cuando la expresión regular se ejecuta contra la cadena "¡Esta orden se realizó para QT3000! ¿Está bien?", produce los siguientes resultados:
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
Comprensión de los cuantificadores codiciosos
El cuantificador predeterminado utilizado en la expresión regular es codicioso, lo que significa que coincide con tantos caracteres como sea posible para satisfacer el siguiente grupo. En este caso, ".*" coincide con toda la cadena hasta que se encuentra el primer dígito, sin dejar caracteres para el tercer grupo.
Uso de cuantificadores reacios
Para hacer coincidir sólo los caracteres necesarios, podemos utilizar un cuantificador reacio, indicado por un signo de interrogación. Reemplazar "(.)" con "(.?)" coincide con la menor cantidad de caracteres posible, lo que genera el siguiente resultado:
Found value: This order was placed for QT3000! OK? Found value: This order was placed for QT Found value: 3000
Ventajas de capturar grupos
La captura de grupos nos permite extraer partes específicas de una cadena coincidente para su uso posterior. En este ejemplo, podemos acceder al valor coincidente de cada grupo a través del método "group()" del objeto "Matcher", como se demuestra en el siguiente fragmento de código:
Pattern pattern = Pattern.compile("(.*?)(\\d )(.*)");
Matcher matcher = pattern.matcher(line);
if (matcher.find()) {
System.out.println("group 1: " matcher.group(1));
System.out.println("group 2: " matcher.group(2));
System.out.println("group 3: " matcher.group(3));
}
Descargo de responsabilidad: Todos los recursos proporcionados provienen en parte de Internet. Si existe alguna infracción de sus derechos de autor u otros derechos e intereses, explique los motivos detallados y proporcione pruebas de los derechos de autor o derechos e intereses y luego envíelos al correo electrónico: [email protected]. Lo manejaremos por usted lo antes posible.
Copyright© 2022 湘ICP备2022001581号-3