Regístrate para acceder a más de 15 cursos gratuitos de programación con un simulador

Modificadores Expresiones regulares (Regexp)

Hasta ahora hemos aprendido a crear patrones que buscan ciertas combinaciones de caracteres. Pero a veces, queremos cambiar un poco el comportamiento de la expresión para que sea más flexible. Para eso existen los modificadores.

Imagina que estás buscando palabras que empiecen con la letra t, pero no te importa si es mayúscula o minúscula. Ahí es donde los modificadores te salvan la vida. 🙌


Supongamos que tenemos esta cadena:

/(?:t.)-(?:t.)/

ta-tu ta-t

Tu-tu tu-T

Y usamos esta expresión regular:

/(?:t.)-(?:t.)/

Este patrón busca dos letras que empiecen con t (minúscula), seguidas por cualquier otro carácter (.), y separadas por un guión. Es decir, algo como ta-tu. Pero solo encuentra las que tienen la t en minúscula. ¿Por qué?

👉 Porque en las expresiones regulares, el patrón distingue entre mayúsculas y minúsculas por defecto. Es decir, t no es lo mismo que T.

Activar insensibilidad a mayúsculas y minúsculas

Para que t y T sean tratados como lo mismo, podemos usar el modificador i (de insensitive). En PCRE (el motor que usamos aquí), lo escribimos así:

/(?i:t.)-(?:t.)/

Ahora sí encuentra Tu-tu, porque activamos el modificador i para el primer grupo. Pero… ¿por qué no encuentra Tu-Tu?

👉 Porque el modificador i solo aplica a la parte donde lo colocaste. La segunda parte ((?:t.)) no tiene el modificador, así que sigue siendo sensible a mayúsculas.

Solución: aplicar i a ambos grupos

Fácil: agregamos (?i:...) también en el segundo grupo:

/(?i:t.)-(?i:t.)/

¡Listo! Ahora también encuentra Tu-Tu.

Esto es equivalente a:

/(?:[tT].)-(?:[tT].)/

Aquí lo hacemos "a mano", diciendo que puede ser t o T. Ambas formas son válidas, pero usar el modificador suele ser más cómodo.

También puedes aplicar i a todo el patrón

Otra opción es activar el modificador para toda la expresión desde el inicio:

/(?i)(t.)-(t.)/
Como no usamos ?:, aquí sí estamos creando dos grupos capturadores, lo cual puede ser útil (o no), dependiendo de lo que necesites.

El modificador s: incluir saltos de línea

Por defecto, el punto (.) no incluye saltos de línea (\n) o retorno de carro (\r). Pero si quieres que lo haga, puedes activar el modificador s.

/(?i:t.)-(?si:t.)/

Aquí, el primer grupo busca como antes, pero el segundo incluye saltos de línea en lo que representa el punto (.). Esto puede ser útil si hay saltos de línea entre los caracteres que buscas.

Desactivar modificadores

Puedes apagar un modificador con un guión -. Por ejemplo:

/(?-i:t.)-(?si:t.)/

Aquí desactivamos i en la primera parte, pero mantenemos s e i en la segunda.

También puedes combinarlos

/(?s-im:t.)-(?si:t.)/

Este patrón:

  • Activa s en el primer grupo.
  • Desactiva i (mayúsculas/minúsculas).
  • Desactiva m (modo multilínea, que aún no hemos visto).
  • En el segundo grupo, mantiene s e i activados.


Resumen

  • Los modificadores cambian el comportamiento de una expresión regular.
  • i permite ignorar mayúsculas y minúsculas (por ejemplo, t también coincidirá con T).
  • s hace que el punto . también coincida con saltos de línea.
  • Puedes aplicar modificadores solo a una parte del patrón usando (?i:...), (?s:...), etc.
  • También puedes activarlos o desactivarlos combinando letras y guiones, como (?s-im:...).
  • En PCRE, los modificadores se colocan dentro de la expresión. En otros lenguajes, como JavaScript, se escriben fuera.

Materiales adicionales

  1. Modificadores

Para acceder completo a curso necesitas un plan básico

El plan básico te dará acceso completo a todos los cursos, ejercicios y lecciones de Códica, proyectos y acceso de por vida a la teoría de las lecciones completadas. La suscripción se puede cancelar en cualquier momento.

Obtener acceso
130
cursos
1000
ejercicios
2000+
horas de teoría
3200
test

Obtén acceso

Cursos de programación para principiantes y desarrolladores experimentados. Comienza tu aprendizaje de forma gratuita

  • 130 cursos, 2000+ horas de teoría
  • 1000 ejercicios prácticos en el navegador
  • 360 000 estudiantes
Al enviar el formulario, aceptas el «Política de privacidad» y los términos de la «Oferta», y también aceptas los «Términos y condiciones de uso»

Nuestros graduados trabajan en empresas como:

Bookmate
Health Samurai
Dualboot
ABBYY