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 : recup de valeur dans une string


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut regex : recup de valeur dans une string
    Bonjour,

    je galere..comme d'hab..
    j'ai une string, je connais l'extention et je veux recup le nom du fichier exemple ci dessous

    je connais l'extension : LNK ou lnk
    je veux recup : LOTUSS~1.LNK

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    VALUE ~ :   $C?y  LOTUSS~1.LNK  b ♦ ?p??↓p??↓*   ☺?☺   ☺               L o t u s
       S a m e t i m e   C o n n e c t . l n k   ∟
    je connais l'extension : exe ou EXE
    je veux recup : Tcpview.exe

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ¶ ▼P?O? ?:i►? +00?↓ /D:\                   ^ 2         ? Tcpview.exe D ♦ ?
           *                         T c p v i e w . e x e   →
    j'arrive plus au moins au resultat mais avec des substring et lastindexof Mais c'est degueulace..est il possible de le faire regex ?

    si quelqu'un a une idée merci !!

  2. #2
    Expert confirmé

    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    2 065
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Rhône (Rhône Alpes)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 2 065
    Points : 4 229
    Points
    4 229
    Par défaut
    Oui tu peux faire un regex tu cherches qulquechose qui finit par .lnk mais comment sais-tu quand ce que tu veux extraire commence?

  3. #3
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    C'est le caractère "~" qui est pénible
    Pour Tcpview.exe, çà çà devrait fonctionner (\w+.exe)
    Et pour l'autre (\w+~\w+.LNK)
    Mais si le "~" est à un autre endroit ca ne fonctionne plus
    " Je préfère comprendre les gens qui ne me comprennent pas "

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut
    justement je ne sais pas quand commence ce que je veux extraire..il semblerait que dans 90% des cas c'est un espace vide ?

    oue le "~" peut etre penible mais du coup je peux peut etre faire une condition ?
    qui check sans le ~ et si pas de resultat check avec le ~

    merci

  5. #5
    Membre éprouvé
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    665
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 665
    Points : 1 161
    Points
    1 161
    Par défaut
    En l'état de la discussion, voir si une recherche de ce genre peut convenir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
     
                string pattern = @"\b[^ ]+\.LNK\b";
     
                // Initialisation de la Regex avec option ignorant la casse (accepte EXE, exe etc...)
                Regex r = new Regex(pattern,RegexOptions.IgnoreCase);
     
                // On récupère la première correspondance qui matche le pattern.
                Match m = r.Match(input);
                Console.WriteLine(m.Value);
     
                //SI IL Y A PLUSIEURS OCCURRENCES A RÉCUPÉRER :
                // On récupère les groupes qui matchent le pattern
                var matches = r.Matches(input);
     
                // On boucle sur la collection des occurrences.
                foreach (Match match in matches)
                {
                    Console.WriteLine(match + Environment.NewLine);
                }
    input étant la chaine à explorer.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut
    Chrimonoye ta solution me donne

    i►? +00?↓ /D:\ ^ 2 ? Tcpview.exe
    la solution de Jabbal'H (\w+.exe)

    fonctionne !

    Merci !!!!

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut
    a par contre dans certain cas.. c'est pas bon
    chiant les caracteres speciaux..

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    VALUE ¶ ▼P?O? ?:i►? +00?↓ /D:\                   ? 2         ? Windows-KB841290-
    x86-ENU.exe  f ♦ ?        *                         W i n d o w s - K B 8 4 1 2
    9 0 - x 8 6 - E N U . e x e   ,

  8. #8
    Membre confirmé Avatar de Jabbal'H
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Octobre 2004
    Messages
    403
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Ille et Vilaine (Bretagne)

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

    Informations forums :
    Inscription : Octobre 2004
    Messages : 403
    Points : 580
    Points
    580
    Par défaut
    ouep c'est chiant, le \W prend le mot, mais à priori, un caractère spé n'est pas compris comme faisant parti d'un mot.

    Peut être une 1ère regex pour détecter les caractères spéciaux et ensuite tu en créé une suivant le résultat.
    Je ne suis pas un pro des regex, il y a peut être plus simple cependant.
    " Je préfère comprendre les gens qui ne me comprennent pas "

  9. #9
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut
    et en prenant tout les caracteres sauf un espace +.exe ?

  10. #10
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2013
    Messages
    88
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2013
    Messages : 88
    Points : 73
    Points
    73
    Par défaut
    sounds very good !!!!

    @"(\w+([-~])*\w+([-~])*\w+([-~])*\w+.exe)"

    ca fait plaiz quand on trouve un truc qui nous fait chier depuis un moment

Discussions similaires

  1. Récuperer une valeur dans une String
    Par Remedy dans le forum Langage
    Réponses: 6
    Dernier message: 10/02/2011, 11h34
  2. Remplacer des balises par des valeurs dans une String
    Par RadicalBob dans le forum Langage
    Réponses: 4
    Dernier message: 26/04/2007, 15h22
  3. forçage d'une valeur dans un string
    Par HRS dans le forum Langage
    Réponses: 3
    Dernier message: 03/08/2006, 15h56
  4. [VB.NET]SourceGrid et affectation de valeurs dans une String
    Par Bourbaky dans le forum Windows Forms
    Réponses: 1
    Dernier message: 01/03/2006, 20h41
  5. Récupérer les valeur d'un énuméré dans une string
    Par Oliv_75 dans le forum SL & STL
    Réponses: 5
    Dernier message: 28/09/2005, 00h55

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