Saltar al contenido principal
eLearner.app
Módulo 4 · Lección 2 de 414/32 en el curso~10 min
Lecciones del módulo (2/4)

Alternativas: `|`

El pipe | es el O (OR) de las regex: el patrón coincide si una de las alternativas coincide. Su precedencia es muy baja: | separa todo lo que está a su izquierda y a su derecha hasta el grupo que lo contiene o el inicio del patrón.

Code
Pattern: cane|gatto|criceto
Sample:  Ho un cane, un gatto e un criceto.
               ^^^^     ^^^^^         ^^^^^^^

Los paréntesis dirigen la precedencia

Sin paréntesis, las alternativas se extienden desde el inicio hasta el final del patrón. Casi siempre querrás limitar el O a una porción del patrón: envuélvelo en un grupo.

Code
Pattern   Significato (errato vs corretto)
^a|b$     "inizio + a" oppure "b + fine"           (probablemente incorrecto)
^(a|b)$   "inizio + (a o b) + fine"                (probablemente correcto)

Sobre el orden típico de las alternativas: coloca las más específicas/largas primero. El motor intenta de izquierda a derecha y se detiene en la primera que coincide: gat|gatto siempre coincidiría únicamente con gat.

Precedencia y aislamiento de alternativas

El operador | tiene una precedencia muy baja. Si escribes ^abc|def$, estás buscando "una cadena que comience con abc O una cadena que termine con def". Para buscar "el inicio de la cadena seguido de abc o def, seguido del fin de la cadena", debes escribir ^(abc|def)$.

Pruébalo tú

Ejercicio#regex.m4.l2.e1
Intentos: 0Cargando...

Encuentra cada ocurrencia de los tres animales `cane`, `gatto`, `criceto` en el texto (en cualquier orden).

Cargando editor...
Mostrar pista

El pipe separa alternativas. Usa la flag g para capturarlas todas.

Solución disponible después de 3 intentos

Ejercicio de repaso

Ejercicio#regex.m4.l2.e2
Intentos: 0Cargando...

Encuentra las palabras `gennaio` o `febbraio` SOLO como palabras completas (usa `` para evitar coincidencias dentro de palabras más largas). Usa paréntesis para limitar la alternancia.

Cargando editor...
Mostrar pista

\b(gennaio|febbraio)\b ancla la elección a palabras completas.

Solución disponible después de 3 intentos

Desafío adicional

Ejercicio#regex.m4.l2.e3
Intentos: 0Cargando...

Encuentra nombres de archivos que terminen con las extensiones `.jpg`, `.png` o `.gif`.

Cargando editor...
Mostrar pista

Usa el pipe dentro de un grupo para alternar entre extensiones.

Solución disponible después de 3 intentos