J'ai un fichier texte qui contient plus ou moins de paragraphes. Le texte n'est pas réellement des mots, ses données délimitées par des virgules; mais ce n'est pas vraiment important. Le fichier texte est en quelque sorte divisé en sections; il peut y avoir des sections et des sous-sections. La division des sections est indiquée par plus d'un saut de ligne et de sous-sections par un saut de ligne.C# Regex.Remplacer plusieurs nouvelles lignes
données Ainsi échantillon:
This is the, start of a, section
908690,246246246,246246
246246,246,246246
This is, the next, section,
sfhklj,sfhjk,4626246
4yw2,fdhds5juj,53ujj
Ainsi, les données ci-dessus contient deux sections, chacune avec trois sous-sections. Parfois, cependant, il y a plus d'une ligne vide entre les sections. Lorsque cela se produit, je veux convertir les caractères de nouvelle ligne, disons \n\n\n\n
à \n\n
; Je pense que regex est probablement le moyen de le faire. Je peux également avoir besoin d'utiliser différentes normes de nouvelle ligne, unix \n
, et les fenêtres \r\n
. Je pense que les fichiers contiennent probablement plusieurs encodages finaux.
Voici l'expression rationnelle que j'ai trouvée; rien de spécial:
Regex.Replace(input, @"([\r\n|\n]{2,})", Enviroment.NewLine + Enviroment.NewLine}
Premièrement, est-ce une bonne solution regex? Je ne suis pas très bon avec regex.
Deuxièmement, je veux ensuite diviser chaque section en un élément dans un tableau de chaînes:
Regex.Split(input, Enviroment.NewLine + Enviroment.NewLine)
Est-il possible de combiner ces étapes?
Je suppose que vous devriez d'abord remplacer '([\ r \ n | \ n])' par 'Enviroment.NewLine' pour garder les données cohérentes. Et je ne connais pas de moyen de l'optimiser, je suppose que vous ne pouvez pas les combiner. Je suppose que vous êtes sur la bonne voie. Vous pouvez définir 'RegexOptions.Compiled' pour le rendre plus rapide. – BrunoLM