Lecciones del módulo (3/4)
El comodín: el punto `.`
El punto . en una regex es el comodín: coincide con cualquier carácter individual... con una excepción importante: NO coincide con el salto de línea (\n).
Pattern: c.t
Sample: cat cot cut c@t c\nt
^^^ ^^^ ^^^ ^^^Tres letras: una c, cualquier carácter, una t. Sin salto de línea en medio, por lo que c\nt no coincide (por defecto).
El punto es extremadamente útil pero también peligroso: usado sin disciplina captura más de lo que pretendías. Combinado con los cuantificadores en el módulo 2 (.*, .+?) es la fuente del 90% de los patrones que "no funcionan de la manera que esperaba".
La flag s: "dotAll"
Con la flag s (también llamada dotAll o single-line) el punto coincide con cualquier carácter, incluido el salto de línea. Útil para extraer bloques que abarcan múltiples líneas.
Pattern: <p>.*</p>
Flag: gs
Sample: <p>prima\nseconda</p>
^^^^^^^^^^^^^^^^^^^^^Límites y comportamiento del comodín punto
El punto . es un comodín potente, pero por defecto no coincide con los caracteres de salto de línea (\n). Si quieres que el punto coincida absolutamente con todo, incluidos los saltos de línea, debes habilitar la flag s (dotAll). Ten cuidado al combinar el punto con cuantificadores (.*), ya que tiende a consumir demasiado texto (comportamiento codicioso o greedy).
Pruébalo tú
Encuentra cada triplete de caracteres delimitado por paréntesis, ej. `(abc)`, `(xyz)`. Usa el comodín para los 3 caracteres internos.
Mostrar pista
Tres puntos para tres caracteres arbitrarios. Los paréntesis son metacaracteres: deben escaparse con \.
Solución disponible después de 3 intentos
Ejercicio de repaso
Extrae el bloque entre `[INIZIO]` y `[FINE]`, que puede abarcar múltiples líneas. Necesitarás la flag `s` para que el punto coincida con los saltos de línea, y la versión 'lazy' (perezosa) del cuantificador (`.*?`, módulo 2).
Mostrar pista
Sin la flag s, el punto se detiene al final de la línea: añádela. La forma .*? (lazy) detiene la coincidencia en el primer [FINE].
Solución disponible después de 3 intentos
Desafío adicional
Encuentra todas las secuencias de 3 caracteres que comiencen con `c` y terminen con `t` (ej. `cat`, `cot`, `c-t`).
Mostrar pista
El patrón usa el punto '.' para representar el comodín para el carácter del medio.
Solución disponible después de 3 intentos