Aller au contenu

Drapeau m des expressions régulières JavaScript (Multiligne)

Introduction au mode multiligne

Le drapeau m dans les expressions régulières JavaScript permet aux ancres ^ et $ de correspondre au début et à la fin de chaque ligne d'une chaîne multiligne, plutôt qu'au début et à la fin de la chaîne entière. Cela est particulièrement utile lors du traitement de textes multilignes où vous devez effectuer une correspondance de motifs ligne par ligne.

Le drapeau m : activation du mode multiligne

Lorsque vous utilisez le drapeau m, les ancres ^ et $ correspondent aux positions avant et après les sauts de ligne au sein de la chaîne.

Utilisation du drapeau m


Output appears here after Run.

Dans cet exemple, l'expression régulière ^abc correspond au début de chaque ligne commençant par « abc » grâce au drapeau m. Le drapeau g garantit que toutes les occurrences sont trouvées. Sans le drapeau m, il ne correspondrait qu'à « abc » au tout début de la chaîne.

Exemple : correspondance sur plusieurs lignes


Output appears here after Run.

Ici, l'expression régulière ^start correspond au début des lignes commençant par « start » grâce à la combinaison des drapeaux m et g.

Applications pratiques

Correspondance de lignes dans un texte multiligne

Le drapeau m est particulièrement utile pour faire correspondre des motifs spécifiques au début ou à la fin de chaque ligne d'une chaîne multiligne.


Output appears here after Run.

Cet exemple montre comment ^hello avec le drapeau m correspond à « hello » au début de chaque ligne.

Correspondance de la fin des lignes dans un texte multiligne

De même, vous pouvez utiliser le drapeau m pour faire correspondre des motifs à la fin de chaque ligne.


Output appears here after Run.

Ici, world$ avec le drapeau m correspond à « world » à la fin de chaque ligne.

Exemple : extraction de lignes spécifiques


Output appears here after Run.

Cet exemple montre comment extraire toutes les lignes commençant par « Error: » d'un fichier journal à l'aide du drapeau m.

Combinaison de drapeaux

Vous pouvez combiner le drapeau m avec d'autres drapeaux pour améliorer vos expressions régulières. Par exemple, combiner le drapeau m avec le drapeau insensible à la casse i vous permet d'effectuer des correspondances multilignes insensibles à la casse.

Exemple : correspondance multiligne insensible à la casse


Output appears here after Run.

Dans cet exemple, l'expression régulière correspond aux lignes contenant « hello », quelle que soit la casse, grâce à la combinaison des drapeaux m et i.

  • Le motif d'expression régulière ^.*hello.*$ correspond à toute ligne contenant « hello », quelle que soit la casse.
  • Le drapeau m garantit que chaque ligne de la chaîne multiligne est traitée individuellement.
  • Hello world, hello world et HELLO WORLD correspondent tous au motif car ils contiennent « hello » (insensible à la casse) quelque part dans la ligne.

INFO

Utilisez le drapeau m dans les expressions régulières JavaScript pour appliquer les ancres ^ et $ à chaque ligne d'une chaîne multiligne, améliorant ainsi votre capacité à valider et à manipuler le contenu ligne par ligne.

Utilisation du drapeau m pour la validation ligne par ligne

Le drapeau m est idéal pour les scénarios où vous devez valider ou manipuler chaque ligne individuellement au sein d'une chaîne multiligne.

Exemple : validation d'un numéro de téléphone américain


Output appears here after Run.

Cette expression régulière garantit que le numéro de téléphone est au format (123) 456-7890. Elle utilise ^ pour indiquer le début et $ pour indiquer la fin, assurant ainsi que la chaîne entière correspond au motif spécifié pour chaque ligne.

Ainsi, tant "(123) 456-7890" que "(234) 567-8901" correspondent au motif de l'expression régulière car ils suivent le format (xxx) xxx-xxxx, conçu pour être reconnu par l'expression régulière.

Conclusion

Le drapeau m dans les expressions régulières JavaScript étend la fonctionnalité des ancres ^ et $ pour correspondre au début et à la fin de chaque ligne d'une chaîne multiligne. Cette fonctionnalité est inestimable pour le traitement de textes multilignes, permettant une correspondance et une validation précises des motifs ligne par ligne.

Pratique

Quelle est la fonction du drapeau 'm' dans les expressions régulières JavaScript ?

Trouvez-vous cela utile?

Aperçu dual-run — comparez avec les routes Symfony en production.