Saltar al contenido

Bandera m de Expresiones Regulares en JavaScript (Multilínea)

Introducción al Modo Multilínea

La bandera m en expresiones regulares de JavaScript permite que las anclas ^ y $ coincidan con el inicio y el final de cada línea dentro de una cadena multilínea, en lugar de solo el inicio y el final de la cadena completa. Esto es especialmente útil al trabajar con texto multilínea donde necesitas realizar coincidencias de patrones línea por línea.

La bandera m: Activar el modo multilínea

Cuando usas la bandera m, las anclas ^ y $ coinciden con las posiciones antes y después de los saltos de línea dentro de la cadena.

Uso de la bandera m


Output appears here after Run.

En este ejemplo, la expresión regular ^abc coincide con el inicio de cada línea que comienza con "abc" debido a la bandera m. La bandera g asegura que todas las ocurrencias sean coincidentes. Sin la bandera m, solo coincidiría con "abc" al principio absoluto de la cadena.

Ejemplo: Coincidir con múltiples líneas


Output appears here after Run.

Aquí, la expresión regular ^start coincide con el inicio de las líneas que comienzan con "start" debido a la combinación de las banderas m y g.

Aplicaciones prácticas

Coincidir líneas en texto multilínea

La bandera m es especialmente útil para coincidir patrones específicos al inicio o al final de cada línea en una cadena multilínea.


Output appears here after Run.

Este ejemplo muestra cómo ^hello con la bandera m coincide con "hello" al inicio de cada línea.

Coincidir el final de las líneas en texto multilínea

De manera similar, puedes usar la bandera m para coincidir patrones al final de cada línea.


Output appears here after Run.

Aquí, world$ con la bandera m coincide con "world" al final de cada línea.

Ejemplo: Extraer líneas específicas


Output appears here after Run.

Este ejemplo demuestra cómo extraer todas las líneas que comienzan con "Error:" de un archivo de registro utilizando la bandera m.

Combinar banderas

Puedes combinar la bandera m con otras banderas para mejorar tus expresiones regulares. Por ejemplo, combinar la bandera m con la bandera insensible a mayúsculas y minúsculas i te permite realizar coincidencias multilínea sin distinguir entre mayúsculas y minúsculas.

Ejemplo: Coincidencia multilínea insensible a mayúsculas y minúsculas


Output appears here after Run.

En este ejemplo, la expresión regular coincide con las líneas que contienen "hello" sin importar el caso, debido a la combinación de las banderas m e i.

  • El patrón de expresión regular ^.*hello.*$ coincide con cualquier línea que contenga "hello" sin importar el caso.
  • La bandera m asegura que cada línea en la cadena multilínea se trate individualmente.
  • Hello world, hello world y HELLO WORLD coinciden con el patrón porque contienen "hello" (insensible a mayúsculas/minúsculas) en algún lugar de la línea.

INFO

Usa la bandera m en las expresiones regulares de JavaScript para aplicar las anclas ^ y $ a cada línea en una cadena multilínea, mejorando tu capacidad para validar y manipular contenido línea por línea.

Usa la bandera m para validación línea por línea

La bandera m es ideal para escenarios donde necesitas validar o manipular cada línea individualmente dentro de una cadena multilínea.

Ejemplo: Validar un número de teléfono de EE. UU.


Output appears here after Run.

Esta expresión regular asegura que el número de teléfono esté en el formato (123) 456-7890. Utiliza ^ para afirmar el inicio y $ para afirmar el final, asegurando que la cadena completa coincida con el patrón especificado para cada línea.

Por lo tanto, tanto "(123) 456-7890" como "(234) 567-8901" coinciden con el patrón de expresión regular porque siguen el formato (xxx) xxx-xxxx, que es el patrón diseñado para coincidir.

Conclusión

La bandera m en las expresiones regulares de JavaScript extiende la funcionalidad de las anclas ^ y $ para coincidir con el inicio y el final de cada línea en una cadena multilínea. Esta capacidad es invaluable para procesar datos de texto multilínea, permitiendo una coincidencia y validación de patrones precisa línea por línea.

Práctica

¿Cuál es la función de la bandera 'm' en las expresiones regulares de JavaScript?

¿Te resulta útil?

Vista previa dual-run — compárala con las rutas Symfony en producción.