Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Avaricia Expresiones regulares (Regexp)

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.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY