IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

[C#] problème avec les expressions régulières


Sujet :

C#

  1. #1
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut [C#] problème avec les expressions régulières
    mon besoin :
    En entrée : un fichier, une expression régulière, le remplacement.
    Je souhaite appliquer l'expression régulière au contenu entier du fichier.

    1°/ solution, on lit le fichier ligne par ligne et on applique le remplacement :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    Regex myRegex = new Regex("^([a-z]+)([0-9]+)\t([0-9])+$");
    string line ;
    while ((line = sr.ReadLine()) != null)
    {
         Console.Out.WriteLine(myRegex.Replace(line, "$1-------$2------$3"));
    }
    2°/ solution. Lire le fichier entiérement et appliquer l'expression régulière.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    string t = sr.ReadToEnd()
    string result = myRegex.Replace( t, "$1-------$2------$3");
    Cela ne marche pas !

    Ne serait-il pas possible d'appliquer ce remplacement sans parcourir le fichier ligne par ligne.

    Je me rappelles qu'en perl, on appliquait une regex à tout un flux en entréé.
    ou même sur d'autres outils, c'est possible.

    Merci de votre aide.

  2. #2
    Membre régulier Avatar de luimême
    Profil pro
    Inscrit en
    Avril 2004
    Messages
    176
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2004
    Messages : 176
    Points : 121
    Points
    121
    Par défaut
    résolu comme ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    StreamReader sr = new StreamReader(@"D:\monfichier.txt");
    string t = sr.ReadToEnd();
    string result = Regex.Replace(t,  "^([a-z]+)([0-9]+)\t([0-9])+$", 
                                                "$1-------$2------$3",    
                                                RegexOptions.Multiline
                                           );

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Problème avec les expressions régulières
    Par philouelgeek dans le forum Langage
    Réponses: 13
    Dernier message: 16/02/2010, 09h33
  2. [RegEx] problème avec les expression régulières
    Par Medmidou dans le forum Langage
    Réponses: 1
    Dernier message: 02/10/2007, 19h35
  3. Problème avec les expression régulière
    Par fouyou dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 04/07/2007, 19h19
  4. [VB.net][vs2005] Problème avec les expressions régulières
    Par zouhib dans le forum Windows Forms
    Réponses: 13
    Dernier message: 22/06/2006, 16h56
  5. Problème avec les expressions régulières
    Par Premium dans le forum Collection et Stream
    Réponses: 11
    Dernier message: 18/06/2006, 17h41

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo