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# Regex.Split avec des données vides


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 7
    Par défaut C# Regex.Split avec des données vides
    Bonjour.
    Mon expression régulière répond à mes besoins mais pourquoi lorsque j'exécute le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    NewName = "Rubrique (13)";
    toto = Regex.Split(NewName, @"^(Rubrique \()(\d*)(\))$");
    System.Diagnostics.Debug.WriteLine("length [{0}]", toto.Length);
    for(int i = 0; i < toto.Length; i++) {
         System.Diagnostics.Debug.WriteLine("La data [{0}] : [{1}]", i, toto[i]);
    }
    j'ai le résultat :

    length [5]
    La data [0] : []
    La data [1] : [Rubrique (]
    La data [2] : [13]
    La data [3] : [)]
    La data [4] : []
    La première donnée et la dernière sont vides.
    data 1, 2 et 3 sont ok
    Pourriez-vous m'aider à résoudre ce problème ?

    Merci

  2. #2
    Membre Expert Avatar de tsuji
    Inscrit en
    Octobre 2011
    Messages
    1 558
    Détails du profil
    Informations forums :
    Inscription : Octobre 2011
    Messages : 1 558
    Par défaut
    [0] Votre pattern inclue des ancrés du début de la ligne (^) et de la fin ($), et par conséquence et en principe split ne aurait lieu proprement dire. Mais ça fonctionne comme tester si un match aurait lieu ou pas.

    [1]
    La première donnée et la dernière sont vides.
    Ce sont des comportements documentés...
    https://docs.microsoft.com/fr-fr/dot...system-string)


    Si une correspondance est trouvée au début ou à la fin de la chaîne d’entrée, une chaîne vide est incluse au début ou à la fin du tableau retourné.
    [1.1]
    Si NewName = "xyzRubrique (13)abc"; et le pattern @"(Rubrique \()(\d*)(\))" (sans ancrés), les résultats seraient :
    length [5]
    La data [0] : [xyz]
    La data [1] : [Rubrique (]
    La data [2] : [13]
    La data [3] : [)]
    La data [4] : [abc]
    C'est pour une illustration.

  3. #3
    Membre régulier
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Juillet 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Finance

    Informations forums :
    Inscription : Juillet 2012
    Messages : 7
    Par défaut
    Merci pour la réponse.
    Je n'avais pas vu ce commentaire dans la doc.

Discussions similaires

  1. [AC-2013] Afficher une colonne avec des données vides ou nulles dans un requête croisée
    Par feline54 dans le forum Requêtes et SQL.
    Réponses: 4
    Dernier message: 26/10/2018, 21h46
  2. [datagrid]lier avec des données
    Par Alex35 dans le forum VB 6 et antérieur
    Réponses: 7
    Dernier message: 11/12/2005, 10h10
  3. Créer du xml avec des données Oracle
    Par Baumont dans le forum Oracle
    Réponses: 3
    Dernier message: 23/11/2005, 15h35
  4. [SELECT] Faire un select avec des champs vides
    Par MinsK dans le forum Langage SQL
    Réponses: 1
    Dernier message: 09/08/2005, 00h05
  5. Problemes avec des cellules vides
    Par arsgunner dans le forum ASP
    Réponses: 7
    Dernier message: 14/06/2004, 08h42

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