regex-banderas

Banderas (flags) en Regex

Las banderas (flags) son opciones que se podemos aplicar a una expresión regular para cambiar su comportamiento de coincidencia.

Estas opciones se pueden especificar al principio de la expresión regular, después de una barra inclinada o entre paréntesis, dependiendo del lenguaje de programación utilizado.

Algunas de las banderas más comunes son:

SímboloFunción
gModo global, busca todas las coincidencias
iIgnorar mayúsculas y minúsculas
mModo multilinea
sPermite que el punto (.) coincida con caracteres de nueva línea
xPermite incluir espacios en blanco y comentarios
uPermite usar caracteres Unicode

No todas ellas estarán disponibles en todos los lenguajes

Modificador g (Global Match)

Realiza coincidencias en todo el texto (no solo en la primera aparición).

El año es 2024 y el día es 24.

Es el comportamiento por defecto en muchos lenguajes

Modificador i (Case Insensitive)

Ignora las mayúsculas/minúsculas en la búsqueda.

Hola, hola, y HOLA a todo el mundo!

Aquí, la Regex selecciona todas las variantes de “hola”, sin importar mayúsculas o minúsculas.

Modificador m (Multi-line)

Permite que ^ y $ coincidan con el inicio y fin de líneas (no solo de la cadena completa)

La primera línea

Una línea que no empieza por La

La tercera línea

Aquí, ^La selecciona la palabra “La” que aparece al inicio de cada línea, no solo al inicio del texto.

Modificador s (Dot All)

Permite que el punto (.) coincida con caracteres de nueva línea (\n), además de cualquier otro carácter.

Hola

aqui cosas en medio

mundo!

Aquí, la regex selecciona el texto entre “Hola” y “mundo”, incluso cruzando líneas gracias al modificador s.

Modificador u (Unicode)

Habilita la coincidencia completa de caracteres Unicode.

ñ, é, and ß are valid Unicode letters.

Aquí, \p{L} selecciona cualquier letra Unicode, como ñ, é y ß.

Modificador x (Verbose)

Permite comentarios y espacios dentro de la regex para mayor legibilidad. Los comentarios se ponen con #.

We found 1234 and 5678 in the document.

Aquí, se seleccionan todos los números de más de un dígito, mientras el comentario después de # no afecta la regex.

No abuséis demasiado de esto, generalmente en vez de mejorar complica aún más