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# récuper un mot apres un tab ou un space Regex


Sujet :

C#

  1. #1
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 71
    Points : 50
    Points
    50
    Par défaut C# récuper un mot apres un tab ou un space Regex
    Bonjour, je me permet de poser ma question je ne trouve pas le moyen de récupérer un groupe de caractère détecter après le 2 ème \s ou \t rencontrer tout ça à l'aide d'une Regex

  2. #2
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 979
    Points
    14 979
    Par défaut
    Salut

    Dans l'idée, tu peux imaginer :

    • un groupe "n'importe quoi - sauf un espace ou une tabulation - suivi d'un espace ou une tabulation"
    • ce groupe doit être présent 2 fois
    • tu récupères la suite

    En pratique, ça peut donner un truc du genre ^(?:[^\s\t]*[\s\t]){2}(.*)$, où :

    • à partir du début de chaîne ^, un groupe "n'importe quoi - sauf un espace ou une tabulation - suivi d'un espace ou une tabulation" = (?:[^\s\t]*[\s\t]) (?: c'est pour éviter de récupérer inutilement le contenu de ce match)
    • ce groupe doit être présent 2 fois = {2}
    • tu récupères la suite = (.*) jusqu'en fin de chaîne $

  3. #3
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    1/30/2020 4:04:00 PM:240 PLC_T12 N_ERREUR InterfaceOPCPhysique::WriteItem [L:475] IID_IOPCSyncIO::Write failed : 712024
    Si tu veux j'ai cette chaîne de caractères je récupère très bien le début j'aimerai
    -récupérer PLC_T12 qui n'est pas standard à chaque ligne donc un groupe de caractère différent
    -le N_ERREUR est standard pour ce que je veux faire
    -Conserver InterfaceOPCPhysique::WriteItem [L:475] (au cas ou)
    -et la fin IID_IOPCSyncIO::Write failed : 712024

  4. #4
    Max
    Max est déconnecté
    Expert éminent sénior

    Avatar de Max
    Homme Profil pro
    Artisan développeur
    Inscrit en
    Mai 2007
    Messages
    2 954
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 41
    Localisation : France, Pyrénées Atlantiques (Aquitaine)

    Informations professionnelles :
    Activité : Artisan développeur
    Secteur : Industrie

    Informations forums :
    Inscription : Mai 2007
    Messages : 2 954
    Points : 14 979
    Points
    14 979
    Par défaut
    Citation Envoyé par Dragz_ Voir le message
    1/30/2020 4:04:00 PM:240 PLC_T12 N_ERREUR InterfaceOPCPhysique::WriteItem [L:475] IID_IOPCSyncIO::Write failed : 712024
    Si tu veux j'ai cette chaîne de caractères je récupère très bien le début j'aimerai
    -récupérer PLC_T12 qui n'est pas standard à chaque ligne donc un groupe de caractère différent
    -le N_ERREUR est standard pour ce que je veux faire
    -Conserver InterfaceOPCPhysique::WriteItem [L:475] (au cas ou)
    -et la fin IID_IOPCSyncIO::Write failed : 712024
    C'est déjà plus complexe que ce que tu décris au départ Le but d'une regex étant de traiter des chaînes de façon générique, il faut que tu décrives bien plus précisément les cas que tu peux avoir en entrée (avec un seul exemple, c'est impossible de créer une regex qui gère tous les cas). Cependant, en voyant ta chaîne et ce que tu veux récupérer, tu peux aussi peut-être te contenter de :

    • récupérer la deuxième partie via la regex proposée précédemment
    • splitter la partie récupérée avec \t (aux autres qui liraient ce message, on ne voit pas les \t dans le message forum mais ils apparaissent bien quand on cite son message )

  5. #5
    Expert confirmé
    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
    Points : 4 005
    Points
    4 005
    Billets dans le blog
    7
    Par défaut
    Bonsoir,

    Pourquoi ne pas utiliser la méthode Split() qui ferait le job en se basant sur les espaces ?

  6. #6
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    Je ne suis pas sur de comprendre la méthode Split pourrait tu m'éclairer dessus ? Car je comprends pourquoi le regex serais complexe à utiliser dans ce cas,
    Merci d'avance !

  7. #7
    Membre du Club
    Homme Profil pro
    Étudiant
    Inscrit en
    Janvier 2020
    Messages
    71
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 22
    Localisation : France, Ille et Vilaine (Bretagne)

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Janvier 2020
    Messages : 71
    Points : 50
    Points
    50
    Par défaut
    Finalement j'ai réussi simplement avec la méthode Split() je suis passer par une tabulation et ma ligne est découpé comme je le souhaite ^^
    Mon code si des personnes sont intéresser
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    string[] ligneArray = lignes.Split('\t');
                foreach (string ligne in ligneArray)
                {
                   // faite ce que vous souhaiter ;) 
                 }

Discussions similaires

  1. récuperer un mot dans une ligne sous C#
    Par ouadie99 dans le forum C#
    Réponses: 2
    Dernier message: 07/01/2008, 18h25
  2. [SQL] Récuperer le mot de passe d'un utilisateur
    Par sliderman dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 10/11/2007, 17h41
  3. récuperer les mots d'une string
    Par kwafaa dans le forum VB.NET
    Réponses: 1
    Dernier message: 09/05/2007, 14h10
  4. Réponses: 4
    Dernier message: 03/05/2007, 12h28
  5. Récuperer des données aprés formatage
    Par WELCOMSMAIL dans le forum Autres Logiciels
    Réponses: 4
    Dernier message: 21/04/2006, 11h56

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