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

Windows Forms Discussion :

probleme avec les regex


Sujet :

Windows Forms

  1. #1
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Points : 19
    Points
    19
    Par défaut probleme avec les regex
    Bonjour,

    Voilà j'ai un pb. Je cherc5.
    he à trouver une chaine de début et une chaine de fin.

    Et récupérer celle du milieu.

    Ma fonction est la suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
     
     
    public string AttrappeChaineEntre(string orig, string debut, string fin) 
     
    		{
    		string pattern = string.Format("({0})(.*?)({1})", debut, fin);
     
    		Regex regex = new Regex(pattern);
     
    		if(regex.IsMatch(orig.ToString()))
    		{
    			MessageBox.Show(regex.Replace(orig, "$2"));
    			//return regex.Replace(orig, "$2");
    		}
    			return regex;
     
     
    		}
    Alors quand je mets 123456789 et que ma fonction est
    string AttrappeChaineEntre("123456789", "123", "789") ;
    Il m'affiche 456.

    Mais si je mets:
    string AttrappeChaineEntre("12345678912355555789", "123", "789") ;
    Il m'affiche 45655555.

    Hors j'aimerais pouvoir récupérer 456
    Puis dans une autre chaine 55555

    Je pensais l'insérer dans un arrayList et la retourner mais je vois pas comment faire.

    Vous savez comment je pourrais faire?

    Merci

  2. #2
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    J'ai regardé un peu et finalement j'ai trouvé ca comme soultion. Mais je n'arrive pas à afficher les résultats de match. Ca fonctionne car il m'en compte 2. Donc ca fonctionne. Il ne me reste plus qu'à afficher les valeurs de match et là ca ne fonctionne pas

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
     
    public string AttrappeChaineEntre(string orig, string debut, string fin) 
    		{
    			string pattern = string.Format("({0})(.*?)({1})", debut, fin);
    			MessageBox.Show("Pattern "+pattern);
     
    			Regex regex = new Regex(pattern);
    //			while(orig.Length
    //			if(regex.IsMatch(orig.ToString()))
    //			{
    //				MessageBox.Show(regex.Replace(orig, "$2"));
    //				//return regex.Replace(orig, "$2");
    //			}
    //			return regex;
    			MatchCollection matches = regex.Matches(orig); 
    			MessageBox.Show(matches.Count.ToString());
    			foreach (Match match in matches) {
     
    			//string newContent = match.Groups["$2"].Value;
    			MessageBox.Show(match.Groups["$2"].Value.ToString());
    			}
    return "";
     
     
    		}

  3. #3
    Membre à l'essai
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Points : 19
    Points
    19
    Par défaut
    Bon eh bien probleme résolu

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
     
    		public string AttrappeChaineEntre(string orig, string debut, string fin) 
    		{
    			string pattern = string.Format("({0})(.*?)({1})", debut, fin);
    			MessageBox.Show("Pattern "+pattern);
     
    			Regex regex = new Regex(pattern);
    //			while(orig.Length
    //			if(regex.IsMatch(orig.ToString()))
    //			{
    //				MessageBox.Show(regex.Replace(orig, "$2"));
    //				//return regex.Replace(orig, "$2");
    //			}
    //			return regex;
    			MatchCollection matches = regex.Matches(orig); 
    			MessageBox.Show(matches.Count.ToString());
    			int i=2;
    			foreach (Match match in matches) {
     
     
    			//string newContent = match.Groups["$2"].Value;
    			MessageBox.Show(match.Groups[2].Value.ToString());
    				i++;
    			}
    return "";
     
     
    		}

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

Discussions similaires

  1. [RegEx] Problème avec les regex
    Par foffa dans le forum Langage
    Réponses: 4
    Dernier message: 31/08/2006, 14h24
  2. Help!! Probleme avec les dates sur SQL SERVER
    Par Nadaa dans le forum MS SQL Server
    Réponses: 16
    Dernier message: 03/08/2006, 16h55
  3. PROBLEME AVEC LES REQUETES IS NULL / NOT EXISTS
    Par sylvaine dans le forum Langage SQL
    Réponses: 5
    Dernier message: 04/06/2004, 13h26
  4. Problem avec les *.AVI sur les panels
    Par NaDiA_SoFt dans le forum C++Builder
    Réponses: 3
    Dernier message: 31/08/2003, 22h50
  5. probleme avec les processus
    Par saidi dans le forum Autres éditeurs
    Réponses: 1
    Dernier message: 05/02/2003, 00h18

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