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