Lors de la rédaction de cette réponse , je devais correspondre exclusivement aux sauts de ligne au lieu d'utiliser le s-flag ( dotall- le point correspond aux sauts de ligne).
Les sites généralement utilisés pour tester les expressions régulières se comportent différemment lors de la tentative de correspondance sur \nou \r\n.
j'ai remarqué
Regex101 correspond aux sauts de ligne uniquement sur
\n
( exemple - supprimer\ret cela correspond)RegExr ne correspond aux sauts de ligne ni sur
\nni sur\r\n
et je ne trouve pas quelque chose pour le faire correspondre à un saut de ligne, sauf pour lem-flag et\s
( exemple )Debuggex se comporte encore plus différemment:
dans cet exemple, il ne correspond qu'à on\r\n, alors
qu'ici il ne correspond qu'à on\n, avec les mêmes indicateurs et moteur spécifiés
Je suis pleinement conscient du m-flag (multiligne - fait ^correspondre le début et $la fin d'une ligne), mais parfois ce n'est pas une option. Idem avec \s, car il correspond également aux tabulations et aux espaces.
Ma pensée d'utiliser le caractère de nouvelle ligne unicode ( \u0085) n'a pas abouti, donc:
- Existe-t-il un moyen sûr d'intégrer la correspondance sur un saut de ligne (de préférence quelle que soit la langue utilisée) dans une expression régulière?
- Pourquoi les sites mentionnés ci-dessus se comportent-ils différemment (en particulier Debuggex, correspondant une seule
\nfois et une seule fois\r\n)?
\r?\nfaire correspondre les deux \r\net les \nséquences de terminaison de ligne. Cela ne fonctionne pas pour l'ancienne \rsyntaxe Mac, mais celle-ci est assez rare de nos jours.
[\r\n]+- ou quelque chose comme ça