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.
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.
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ú
Encuentra cada ocurrencia de los tres animales `cane`, `gatto`, `criceto` en el texto (en cualquier orden).
Mostrar pista
El pipe separa alternativas. Usa la flag g para capturarlas todas.
Solución disponible después de 3 intentos
Ejercicio de repaso
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.
Mostrar pista
\b(gennaio|febbraio)\b ancla la elección a palabras completas.
Solución disponible después de 3 intentos
Desafío adicional
Encuentra nombres de archivos que terminen con las extensiones `.jpg`, `.png` o `.gif`.
Mostrar pista
Usa el pipe dentro de un grupo para alternar entre extensiones.
Solución disponible después de 3 intentos