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

Búsqueda condicional Expresiones regulares (Regexp)

En esta lección aprenderemos otra técnica de búsqueda: búsqueda condicional. Esta es una de las construcciones más complejas que existen en las expresiones regulares y no es compatible con JavaScript y muchos otros lenguajes de programación.

En algunos lenguajes, es necesario tener en cuenta las peculiaridades de su implementación: Python admite la búsqueda condicional utilizando la agrupación con retroalimentación o grupos con nombre.

Esta construcción se asemeja al operador ternario de los lenguajes de programación y se ve así: (?ifthen|else).

Veamos cómo funciona en este ejemplo:


/(?(?<=a)m|p)/

mam,pap


Vemos paréntesis externos con ?, y dentro de ellos hay dos expresiones separadas:

  • La primera es la condición (?<=a). Verifica si el carácter a la izquierda es a.
  • Luego viene la alternativa. Elegimos entre m y p dependiendo de si se cumple la condición o no.

Podemos describir esta construcción de la siguiente manera: "Encuentra todas las m que están precedidas por a, o todas las p que no están precedidas por a".

Vamos a analizar la búsqueda en nuestra cadena carácter por carácter:

  • Primero se verifica la condición: si el carácter actual es m y si hay un a antes de él. La condición no se cumple, así que intentamos extraer p, que tampoco es el carácter actual.
  • El segundo carácter a no cumple las condiciones. Saltamos la subcadena ma y verificamos m,pap.
  • El tercer carácter m coincide con m, y antes había un a - hemos encontrado la primera coincidencia.
  • La coma en el cuarto carácter no cumple las condiciones. Saltamos la subcadena mam, y verificamos pap.
  • El quinto carácter p no coincide con am, pero coincide con p - hemos encontrado la segunda coincidencia.
  • El sexto carácter a inicia la verificación del siguiente carácter para ver si coincide con m.
  • El séptimo carácter p no pasa la verificación para coincidir con m.

Así es como encontramos dos coincidencias en la cadena mediante la búsqueda condicional.


Materiales adicionales

  1. Búsqueda condicional

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