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

Unicode property escapes

Las clases \w, \d, \s en ASCII no son suficientes para textos en español, francés, griego o con emojis. El JavaScript moderno (con la flag u -- Unicode) ofrece escapes de propiedades \p{...}: clases semánticas basadas en las propiedades Unicode de los caracteres.

Code
Pattern: \p{L}+        (con flag u)
Sample:  Ciao caffe' über世界
         ^^^^ ^^^^^^^ ^^^^ ^^^^

\p{L} = "cualquier Letra (Unicode)": incluye letras acentuadas, ideogramas chinos, cirílico, griego... todo. Las más comunes:

  • \p{L} -- letra (de cualquier alfabeto).
  • \p{N} -- número (dígitos arábigos, romanos, indios...).
  • \p{P} -- puntuación.
  • \p{S} -- símbolo (matemático, moneda, emoji...).
  • \p{Z} -- espacio/separador.
  • \p{Script=Latin} -- específicamente el alfabeto latino.
  • \p{Script=Greek} -- el alfabeto griego. Y así sucesivamente.

Y las versiones negadas \P{L}, \P{N}, ...

Diferencia con \w y \d

Code
\w coincide con [A-Za-z0-9_]              -- solo ASCII, no coincide con "caffe'"
\p{L}\p{N}_  con flag u                  -- incluye caracteres acentuados

Para un analizador robusto de texto en español, prefiere \p{L} en lugar de \w: canción, café, mañana coinciden correctamente como palabras.

Propiedades Unicode y compatibilidad del navegador

Las propiedades Unicode como \\p{L} (Letras) o \\p{Script=Latin} extienden las clases a alfabetos internacionales. En JavaScript, requieren estrictamente la flag u (o v), de lo contrario el motor lanza un error de sintaxis.

Pruébalo tú

Ejercicio#regex.m5.l4.e1
Intentos: 0Cargando...

Encuentra cada palabra, incluidas aquellas con acentos (citta', perche', e' …). Usa el escape de propiedad \p{L} con la flag u.

Cargando editor...
Mostrar pista

Reemplaza \w+ por \p{L}+ y añade la flag u (además de g).

Solución disponible después de 3 intentos

Ejercicio de repaso

Ejercicio#regex.m5.l4.e2
Intentos: 0Cargando...

Encuentra cada símbolo Unicode (monedas, matemáticas, emojis) en el texto, excluyendo letras y dígitos.

Cargando editor...
Mostrar pista

\p{S} coincide con la categoría Symbol de Unicode. Recuerda la flag u.

Solución disponible después de 3 intentos

Desafío adicional

Ejercicio#regex.m5.l4.e3
Intentos: 0Cargando...

Encuentra todas las palabras que consistan en letras del alfabeto cirílico usando `p{Script=Cyrillic}`.

Cargando editor...
Mostrar pista

Usa \p{Script=Cyrillic} con el cuantificador + y la flag u.

Solución disponible después de 3 intentos