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, quelques difficultés


Sujet :

C#

  1. #1
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 61
    Par défaut RegEx, quelques difficultés
    Bonjour à toutes et à tous,

    je rencontre quelques problèmes pour créer mon RegEx (une fois de plus) donc je fais appel à votre aide

    Donc j'ai plusieurs chaînes telles que celles ci-dessous :
    #8 0000000071277d6e DXHEJQG|445848454a5147 5fc60e32d59a62d1
    #9 00000000d942fd80 IJ UNHB|494a20554e4842 60349eedf98110ea
    #2395 0000000275010a19 FLETA |20464c45544120 8fcf30bdb80e3fd4
    #2398 0000000096b307e2 FNELSQT|464e454c535154 8f6d7451984fc038

    De manière générale:
    #<id>[plusieurs espaces, min 1]<...>[2 espaces]<plain (1-X)>|<hexa (2 fois plain.length)>[2 espaces]<mot de 16 chars>
    Et j'aimerais en extraire certaines parties (c'est le but du RegEx me direz-vous).
    J'ai donc comme pattern :
    ^#.*?(?<id>.*?\s).*?(?<plain>.*?)\|(?<hex>.*?\s)
    Sauf qu'en retour j'ai :
    8 0000000071277d6e DXHEJQG 445848454a5147
    9 00000000d942fd80 IJ UNHB 494a20554e4842
    2395 0000000275010a19 FLETA 20464c45544120
    2398 0000000096b307e2 FNELSQT 464e454c535154

    et non
    8 DXHEJQG 445848454a5147
    9 IJ UNHB 494a20554e4842
    2395 FLETA 20464c45544120 (un espace de chaque côté de FLETA)
    2398 FNELSQT 464e454c535154
    Donc si vous savez comment je peux régler ce problème je vous en serai reconnaissant.

    Merci d'avance pour votre aide ;D
    Bonne journée

  2. #2
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Moi j'ai trouvé çà :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "^#(?<id>[^\s]+)\s+[\d\w]+\s+(?<plain>[0-9abcdefghijklmnopqrstuvwxABCDEFGHIJKLMNOPQRSTUVWX]+)\|(?<hex>[0-9abcdefABCDEF]+)\s+.*$"
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 61
    Par défaut
    Tout d'abord je te remercie pour ton aide.
    Par contre je pense qu'il y a plus simple et dans le cas où plain comporte un espace il ne sera pas pris en compte.

    En tout cas je continue de chercher de mon côté.
    Merci encore


    Edit : sinon couper tous les membres de la ligne, un à un mais là c'est encore un casse-tête avec les espaces :s

  4. #4
    Rédacteur
    Avatar de SaumonAgile
    Homme Profil pro
    Team leader
    Inscrit en
    Avril 2007
    Messages
    4 028
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Team leader
    Secteur : Conseil

    Informations forums :
    Inscription : Avril 2007
    Messages : 4 028
    Par défaut
    Citation Envoyé par hm1ch Voir le message
    Tout d'abord je te remercie pour ton aide.
    Par contre je pense qu'il y a plus simple et dans le cas où plain comporte un espace il ne sera pas pris en compte.
    Tu peux ajouter l'espace dans la liste des caractères autorisés. Pour ce qui est de la simplicité, j'ai fait le plus restrictif possible.
    Besoin d'un MessageBox amélioré ? InformationBox pour .NET 1.1, 2.0, 3.0, 3.5, 4.0 sous license Apache 2.0.

    Bonnes pratiques pour les accès aux données
    Débogage efficace en .NET
    LINQ to Objects : l'envers du décor

    Mon profil LinkedIn - MCT - MCPD WinForms - MCTS Applications Distribuées - MCTS WCF - MCTS WCF 4.0 - MCTS SQL Server 2008, Database Development - Mon blog - Twitter

  5. #5
    Membre confirmé
    Profil pro
    Inscrit en
    Juin 2002
    Messages
    61
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2002
    Messages : 61
    Par défaut
    Je teste avec : (celui que tu m'as donné quelque peu raccourci)
    ^#(?<id>[^\s]+)\s+[\d\w]+\s+(?<plain>[0-9a-zA-Z\s]+)\|(?<hex>[0-9a-fA-F]+)\s+.*$
    Je te tiens au courant
    Merci en attendant

Discussions similaires

  1. Quelques difficultés avec les events
    Par Atow57 dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/12/2009, 13h46
  2. Réponses: 2
    Dernier message: 28/08/2009, 15h20
  3. Quelques difficultés en programmation java
    Par dot-_-net dans le forum Débuter avec Java
    Réponses: 11
    Dernier message: 04/11/2008, 14h34
  4. quelque difficulté IE
    Par imparator_42 dans le forum VB 6 et antérieur
    Réponses: 0
    Dernier message: 24/06/2008, 18h22
  5. Réponses: 10
    Dernier message: 13/06/2007, 11h27

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