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 :

regex Split string


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Août 2012
    Messages
    64
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2012
    Messages : 64
    Par défaut regex Split string
    Bonjour à tous

    Je souhaite splitter une chaine de caractère tous en gardant l'element a splitter.

    la chaine de caratere est de la forme ex ve1.9_vi2.10TOTO
    et je souhaite concerver ve1.9_vi2.10

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    Regex regex = new Regex(@"ve+\d+\s*.\s*\d+_+vi\d+\s*.\s*\d+");         
    string[] substrings = regex.Split(this.txtQualifVersion.Text);
    resultat j ai substrings[0]="" et substrings[1]="TOTO"

    resultat attendu :substrings[0]="ve1.9_vi2.10" et substrings[1]="TOTO"

    merci

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonjour,
    vous utilisez "ve+\d+\s*.\s*\d+_+vi\d+\s*.\s*\d+" comme délimiteur (soit la chaine veX.X_viX.X, --> X étant un ou plusieurs chiffres).
    Pour le récupérer il faut le mettre entre parenthères :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Regex regex = new Regex(@"(ve+\d+\s*.\s*\d+_+vi\d+\s*.\s*\d+)");
    Ainsi dans la liste et pour l'exemple proposé, vous aurez 3 captures :
    - 0 - ce qui est avant le délimiteur soit rien = ""
    - 1 - le délimiteur soit : ve1.9_vi2.10
    - 2 - et ce qui est derrière soit TOTO

    N.B. : il est peut être préférable d'utiliser les groupes plutôt que de tels délimiteurs :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
                Regex regex = new Regex(@"(ve+\d+\s*.\s*\d+_+vi\d+\s*.\s*\d+)(\w+)");
                Match match = regex.Match(this.txtQualifVersion.Text);
                if (match.Success)
                {
                    string s1 = match.Groups[1].Value;
                    string s2 = match.Groups[2].Value;
                }

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

Discussions similaires

  1. split string [debutant]
    Par le_voisin dans le forum C++
    Réponses: 2
    Dernier message: 11/01/2009, 23h28
  2. Réponses: 6
    Dernier message: 17/09/2007, 16h46
  3. split string longueur variable
    Par krina85 dans le forum Requêtes et SQL.
    Réponses: 2
    Dernier message: 14/09/2007, 16h31
  4. [String] pb fonction String[] split(String regex)
    Par Kyti dans le forum Langage
    Réponses: 6
    Dernier message: 05/04/2005, 13h06
  5. split(String)
    Par keke33 dans le forum Langage
    Réponses: 11
    Dernier message: 03/06/2004, 15h44

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