Expression régulière correspondant de la croix-plate-forme de caractères de saut de ligne
Mon programme peut accepter des données qui a les caractères de saut de ligne de \n, \r\n ou \r (par exemple Unix, PC ou Mac styles)
Quelle est la meilleure façon de construire une expression régulière qui correspond à ce que l'encodage est?
Sinon, je pourrais utiliser universal_newline appuyer sur entrée, mais maintenant, je suis curieux de voir ce que la regex serait.
- Il suffit de noter,
\r
est le vieux Mac style (et par "vieux", je veux dire "OS 9 et avant"). N'importe quel Mac équipé d'OS X (un.k.un. fabriqués après 1999) va utiliser\n
comme tous les autres Unix. - Quand est-il utile de faire correspondre les retours à la ligne au lieu d'utiliser
'$'
pour correspondre à la fin de la ligne ? - Lorsque le fractionnement d'un fichier en lignes via des regex.
- beaucoup de php, Mais ne serait pas str.splitlines() fonctionne aussi bien?
- OK, donc il n'est pas nécessaire souvent, mais c'est bon à savoir pour les autres langues qui n'ont pas de fonctions pratiques comme
splitlines()
.
Vous devez vous connecter pour publier un commentaire.
La regex que j'utilise quand je veux être précis est
"\r\n?|\n"
.Quand je ne suis pas inquiète au sujet de la cohérence ou de lignes vides, j'utilise
"[\r\n]+"
, j'imagine que ça rend mes programmes, quelque part dans l'ordre de 0.2% plus rapide.Le motif peut être simplifié à
\r?\n
pour un petit gain de performance, comme vous l'avez probablement n'avez pas à traiter avec les anciens Mac style (OS 9 n'est pas pris en charge depuis le mois de février 2002).