Lecciones del módulo (2/4)
Límites de palabra: `\b` `\B`
\b es un ancla de límite de palabra (word boundary): coincide con la posición entre un carácter de palabra (\w) y un carácter que no es de palabra (\W, o el inicio/fin de la cadena). Al igual que ^ y $, NO consume caracteres.
Pattern: \bgatto\b
Sample: Il gatto e la gattina giocano.
^^^^^gatto coincide solo como una palabra completa: dentro de gattina la secuencia gatto no está (falta la o final), pero tampoco coincidiría con gatti porque la i final es un carácter de palabra.
\B es lo opuesto: coincide con una posición que NO es un límite de palabra.
Encontrar "palabras completas"
El uso más típico de \b es "coincidir con la palabra X solo cuando está aislada, no como parte de otra palabra":
\bif\b coincide con 'if' pero no con 'sniff', 'gift', 'lifetime'.Límites de palabras y caracteres que no son de palabra
El límite \b no coincide con ningún carácter físico; es una prueba de posición. Existe un límite \b entre un carácter \w y un carácter no-\w (o el inicio/fin del texto). La negación \B afirma que la posición actual no es un límite de palabra.
Pruébalo tú
Encuentra cada ocurrencia de la palabra completa `cat` (case-insensitive). NO debe coincidir con `category`, `concatenate`, `scatter`.
Mostrar pista
Envuelve 'cat' entre dos \b: límite al inicio Y límite al final.
Solución disponible después de 3 intentos
Ejercicio de repaso
Encuentra cada número entero que NO forme parte de un identificador (ej. `42` sí, pero ni `var42` ni `42abc`). Usa `` en ambos lados.
Mostrar pista
\b\d+\b coincide solo con secuencias de dígitos 'aisladas'. abc42 tiene 'c' (carácter de palabra) antes del 42.
Solución disponible después de 3 intentos
Desafío adicional
Encuentra la secuencia `cat` solo si comienza una palabra más larga, excluyendo cuando aparece como una palabra completa o al final (ej. coincide con `catalog` pero no con `wildcat` o `cat` aislado).
Mostrar pista
Usa \b al principio de cat (límite de palabra) y \B al final (límite de no palabra).
Solución disponible después de 3 intentos