Saltar al contenido principal
eLearner.app
Módulo 1 · Lección 3 de 43/32 en el curso~8 min
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).

Code
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.

Code
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ú

Ejercicio#regex.m1.l3.e1
Intentos: 0Cargando...

Encuentra cada triplete de caracteres delimitado por paréntesis, ej. `(abc)`, `(xyz)`. Usa el comodín para los 3 caracteres internos.

Cargando editor...
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

Ejercicio#regex.m1.l3.e2
Intentos: 0Cargando...

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).

Cargando editor...
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

Ejercicio#regex.m1.l3.e3
Intentos: 0Cargando...

Encuentra todas las secuencias de 3 caracteres que comiencen con `c` y terminen con `t` (ej. `cat`, `cot`, `c-t`).

Cargando editor...
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