Faire correspondre les caractères de Newline dans R Regex
- Séquences de nouvelles lignes dans différents environnements
- Tester la Regex avec des séquences Newline
Bien que les expressions régulières (regex
en abrégé) soient un moyen assez universel de définir des modèles de chaînes de caractères, ces modèles peuvent se comporter différemment selon les plates-formes, en particulier lorsque l’expression régulière a l’intention de faire correspondre des caractères spéciaux, comme les sauts de ligne. Dans cet article, nous analyserons les différentes façons d’inclure les sauts de ligne dans les expressions régulières dans R.
Séquences de nouvelles lignes dans différents environnements
Dans les environnements Linux, le motif \n
correspond à une séquence de nouvelles lignes. Sous Windows, cependant, le saut de ligne correspond à \r\n
, et dans les anciens Macs, à \r
.
Si vous avez besoin d’une expression régulière qui correspond à une séquence de retour à la ligne sur l’une de ces plates-formes, vous pouvez utiliser le motif \r?\n
pour faire correspondre les séquences de caractères de terminaison de ligne \n
et \r\n
.
Cette option s’applique aux environnements Linux et Windows, bien que le modèle ne corresponde pas correctement aux sauts de ligne des anciens Macs. Pour couvrir également les anciens Macs, vous pouvez utiliser le motif \r?\n|\r
qui correspond également à \r
. Une version plus correcte de ce modèle serait : (\r\n|\r|\n)
Tester la Regex avec des séquences Newline
De nombreux sites web offrent la possibilité de tester les expressions régulières. La plupart d’entre eux fonctionnent comme les environnements Linux, en trouvant des correspondances sur des chaînes de caractères avec des sauts de ligne lors du test du motif \n
. Mais ils ne trouvent pas de correspondance lorsque vous testez le modèle \r\n
. Ces sites sont par exemple Regex101 et Regexr.
D’autres sites de test peuvent présenter des comportements différents, comme c’est le cas dans différents environnements d’exploitation. Par exemple, Regex Storm fonctionne davantage comme les plates-formes Windows, en trouvant des correspondances entre les chaînes de caractères avec des sauts de ligne et le modèle Regex
.