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

VB.NET Discussion :

preg_match_all en vb.net


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé

    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Par défaut preg_match_all en vb.net
    J'ai un souci de ré-écriture d'une expression régulière avec la fonction preg_match_all de PHP en VB.net.

    J'ai le texte suivant :

    Un homme est toujours {amené|{acheminer|aller|{diriger|marcher}|envoyer}|cheminer} à faire des choix dans sa vie .

    Avec le code suivant en PHP :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    preg_match_all('/\{([^{}]*)\}/si', $mytext, $matches)
    je retrouve tous les mots contenus dans les accolades (amené, acheminer, aller, diriger, marcher, envoyer, cheminer).

    J'ai essayé de réécrire cette fonction en vb.net de la manière suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim matches As System.Text.RegularExpressions.MatchCollection = System.Text.RegularExpressions.Regex.Matches(mytext, "\{([^{}]*)\}", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    Mais cela ne me retourne que la chaine de texte {diriger|marcher} avec testmatches.Count = 1

    Ou est l'erreur ?

    Merci de votre aide.

  2. #2
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Je ne sais pas ce que tu peux avoir comme entrée, mais si les séparateurs sont toujours { } ou | tu peux essayer avec [^{}|]+

  3. #3
    Membre confirmé

    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Par défaut
    Oui les séparateurs sont toujours { } ou |

    Si je t'ai bien compris, le code devient alors :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim matches As System.Text.RegularExpressions.MatchCollection = System.Text.RegularExpressions.Regex.Matches(mytext, ""\{([^{}|]+)\}", System.Text.RegularExpressions.RegexOptions.IgnoreCase)
    C'est bien cela ?

  4. #4
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Non, juste
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim matches As MatchCollection = Regex.Matches(mytext, "[^{}|]+", RegexOptions.IgnoreCase)

  5. #5
    Membre confirmé

    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juillet 2009
    Messages
    62
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Eure (Haute Normandie)

    Informations professionnelles :
    Activité : Ingénieur intégration

    Informations forums :
    Inscription : Juillet 2009
    Messages : 62
    Par défaut
    StormimOn, presque bon

    En effet avec cette nouvelle expression régulières désormais je trouve trop de résultats.
    Cela me retourne
    Un homme est toujours
    amené
    acheminer
    aller
    dirige
    marcher
    envoyer
    cheminer

    à faire des choix dans sa vie

    Je ne veux que ce qui est entre les { .... } (ce que j'ai indiqué en bleu)

  6. #6
    Membre expérimenté
    Avatar de StormimOn
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mai 2005
    Messages
    2 593
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 47
    Localisation : France, Sarthe (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mai 2005
    Messages : 2 593
    Par défaut
    Essaye avec (?<=[{|])[^{}|]+(?=[}|]), ça devrait être mieux.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [Débat] Technologie .NET vs JAVA
    Par neo.51 dans le forum Débats sur le développement - Le Best Of
    Réponses: 1047
    Dernier message: 14/01/2019, 16h15
  2. [Débat] Expériences au sujet de .NET
    Par DevX dans le forum Débats sur le développement - Le Best Of
    Réponses: 46
    Dernier message: 25/05/2014, 11h16
  3. A ceux qui ont migré de VB6 vers VB.Net
    Par Fox dans le forum VB 6 et antérieur
    Réponses: 81
    Dernier message: 21/05/2008, 14h56
  4. utiliser les tag [MFC] [Win32] [.NET] [C++/CLI]
    Par hiko-seijuro dans le forum Visual C++
    Réponses: 8
    Dernier message: 08/06/2005, 15h57
  5. Fichier PDOXUSRS.NET
    Par yannick dans le forum Paradox
    Réponses: 5
    Dernier message: 05/04/2002, 09h45

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