En esta lección aprenderemos sobre los conceptos de cuantificación codiciosa y perezosa.
Vamos a escribir una expresión regular que resalte todas las etiquetas en nuestra cadena. Para ello, especificaremos los signos de apertura y cierre de la etiqueta: < y >. Dentro de ellos puede haber cualquier carácter:
/<.*>/
<a href="https://www.google.com">yahoo</a>
En la cadena hay dos etiquetas: una de apertura y una de cierre. A pesar de esto, la expresión regular coincide con toda la cadena. Este comportamiento se llama codicioso. Esto significa que el cuantificador se repite tantas veces como sea posible. Por defecto, en las expresiones regulares la cuantificación es codiciosa, por lo que capturamos la subcadena máxima. Toda la cadena se considera contenido de la etiqueta, entre < y >.
Intentemos evitar el comportamiento codicioso, en lugar de cualquier carácter dentro de la etiqueta, podemos especificar cualquier carácter excepto el de cierre. Y luego coincidirán las dos etiquetas por separado:
/<[^>]*>/
<a href="https://www.google.com">yahoo</a>
A pesar de la eficiencia de esta solución, es solo una forma de evitar las consecuencias del comportamiento codicioso, pero no el comportamiento en sí.
En contraste con la cuantificación codiciosa, existe la cuantificación perezosa. En la cuantificación perezosa capturamos la subcadena mínima. Para convertir la cuantificación codiciosa en perezosa, debemos usar el carácter especial ?:
/<.*?>/
<a href="https://www.google.com">yahoo</a>
No olvides que en las expresiones regulares muchos caracteres especiales se comportan de manera diferente dependiendo de dónde se encuentren. Si el ? estuviera después del punto, simplemente se consideraría como un cuantificador de "ningún carácter o un carácter":
/<.?>/
<p><a href=" https://google.com ">yahoo</a></p>
Sin embargo, cuando el ? va inmediatamente después del cuantificador, se considera un carácter especial que convierte los cuantificadores codiciosos en perezosos.
Para acceder completo a curso necesitas un plan básico
El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.