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

Langages Discussion :

Aide pour extraction de "champs" d'une String (en RegEx ou autre)


Sujet :

Langages

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre habitué
    Homme Profil pro
    Auditeur informatique
    Inscrit en
    Juillet 2016
    Messages
    8
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Auditeur informatique

    Informations forums :
    Inscription : Juillet 2016
    Messages : 8
    Par défaut Aide pour extraction de "champs" d'une String (en RegEx ou autre)
    Bonjour,

    Pour un petit développement personnel (vb.net ou C#) je bloque sur le traitement/exploitation d'une chaîne de caractère.

    Objectif: extraire les differents élément d'une chaine de caractere.

    La chaine en question est sous la forme suivante:

    "NNN MOT String1 String2 String3 , String4 , String5 , String6 , String7, String8"

    NNN = Nombre de 2 à 3 chiffres
    MOT = une string SANS espace
    String[1-3] = String SANS espaces
    String [4-8] = String AVEC éventuellement des espaces

    NOTE: Le nombre d'espaces entre NNN, MOT et String[1-3] est variable !

    J'arrive à découper cette string via un "split(',')" (seul séparateur réel), mais j'ai des soucis pour exploiter la première partie (de NNN à String3)

    je pense que via un traitement de type RegEx cela serait beaucoup plus simple (en ligne de code) et plus rapide, mais je maîtrise assez mal les Regex pour ce genre de chose.

    Donc avant de me lancer dans une usine à gaz, qui finira certainement par fonctionner, je me tourne vers les plus expérimentés pour ce type de cas.
    Je demande rarement des solutions "clef en main", mais ici je bloque complet

    Donc merci d'avance a ceux qui vont pouvoir me donner ce coup de pouce avec éventuellement une mini explication de la solution afin de la comprendre et évoluer dans ce domaine.

    Avec toute ma gratitude !

    A.D

  2. #2
    Membre Expert
    Avatar de wallace1
    Homme Profil pro
    Administrateur systèmes
    Inscrit en
    Octobre 2008
    Messages
    1 966
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Administrateur systèmes
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 966
    Billets dans le blog
    7
    Par défaut
    Bonjour,

    Au regard de ton énoncé il n'est vraiment pas utile d utiliser du regex. Il est absolument faux de croire que regex est plus rapide et adapté dans ton cas. Tu as tous les éléments pour commencer à parser ta chaîne :

    Split()
    Contains()
    ToCharArray()
    IsWhiteSpace()
    Replace()

    ...etc....

    EDIT : pour compléter ton problème il faudrait savoir si les espaces entre NNN, MOT et String[1-3] doivent être conservés en résultat de sortie .......

    ++

  3. #3
    Expert éminent Avatar de Pol63
    Homme Profil pro
    .NET / SQL SERVER
    Inscrit en
    Avril 2007
    Messages
    14 204
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : .NET / SQL SERVER

    Informations forums :
    Inscription : Avril 2007
    Messages : 14 204
    Par défaut
    je confirme qu'un regex est le plus souvent plus lent qu'un traitement personnalisé, et jusqu'à des milliers de fois plus lent
    c'est juste un truc de fainéant qui ne veut écrire qu'une ligne, si tant est qu'on puisse qualifié de fainéant quelqu'un qui a réussi à comprendre la syntaxe d'un regex ^^

    je pense qu'il faut commencer par spliter sur la virgule, ca permettra de laisser les espaces sur les strings
    ensuite le 1er objet sera à spliter sur espace, et on peut préciser de supprimer les chaines vides du tableau (donc les espaces multiples seront "vus" comme un espace simple permettant de mieux découper)
    après c'est juste de la manipulation de chaine comme dit plus haut

    j'ajouterais indexof et substr qui peuvent etre utile
    Cours complets, tutos et autres FAQ ici : C# - VB.NET

Discussions similaires

  1. [RegEx] aide pour extraction de données
    Par Hotfirenet dans le forum Langage
    Réponses: 2
    Dernier message: 13/04/2008, 21h19
  2. [RegEx] Besoin d'aide pour extractions
    Par PoT_de_NuTeLLa dans le forum Langage
    Réponses: 4
    Dernier message: 25/05/2007, 13h51

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