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ímbolo | Función | ||
---|---|---|---|
g | Modo global, busca todas las coincidencias | ||
i | Ignorar mayúsculas y minúsculas | ||
m | Modo multilinea | ||
s | Permite que el punto (. ) coincida con caracteres de nueva línea | ||
x | Permite incluir espacios en blanco y comentarios | ||
u | Permite 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).
Es el comportamiento por defecto en muchos lenguajes
Modificador i
(Case Insensitive)
Ignora las mayúsculas/minúsculas en la búsqueda.
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)
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.
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.
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 #
.
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