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 :

Regex pour verifier si un string contient toutes les voyelles [Débutant]


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut Regex pour verifier si un string contient toutes les voyelles
    Bonjour

    J'essaie sans success de coder un regex pour verifier si un string contient toutes les voyelles.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim pattern As String = "AEIOUY"
        Dim regex = New Regex(pattern)
         For Each match As Match In regex.Matches(mystring)
              str = match.Value
         Next
    cela fonctionne seulement si mystring contient AEIOUY mais pas dans un autre ordre

  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
    Bonsoir shayw,

    Et si tu utilises ce pattern :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim pattern As String = "A|E|I|O|U|Y"
    Il faudra certainement comparer le résultat avec le pattern sans les caractères d'isolement.


    A+

  3. #3
    Membre Expert Avatar de DonQuiche
    Inscrit en
    Septembre 2010
    Messages
    2 741
    Détails du profil
    Informations forums :
    Inscription : Septembre 2010
    Messages : 2 741
    Par défaut
    Bonsoir. Si le problème est exactement "vérifier qu'une chaîne contient toutes les voyelles" alors une regex n'est clairement pas l'outil le plus adapté. Il faudrait soit une expression par voyelle, soit une seule expression très lourdingue (testant toutes les permutations possibles). Dans tous les cas String.Contains est une bien meilleure alternative.

  4. #4
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    peut etre ainsi un peu bricolage


    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
    20
    21
    22
     Dim flags(5) As Boolean
            Dim pattern As String = "A|E|I|O|U|Y"
            Dim regex = New Regex(pattern)
            For Each item In flags
                    item = False
                Next
            vowelscount = regex.Matches(mystring).Count
            If vowelscount >= 6 Then
                        For Each match As Match In regex.Matches(mystring)
                            Select Case match.Value
                                Case "A" : flags(0) = True
                                Case "E" : flags(1) = True
                                Case "I" : flags(2) = True
                                Case "O" : flags(3) = True
                                Case "U" : flags(4) = True
                                Case "Y" : flags(5) = True
                            End Select
                        Next
                       if flags(0) and flags(1)and  flags(2) and flags(3) and flags(4 ) and flags(5) then 
     
                    End If
              end if

  5. #5
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour,

    Et en suivant le conseil de DonQuiche.
    c étant la chaine de caractère, tester directement
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
      If c.Contains("A") And c.Contains("E") And c.Contains("I") And c.Contains("O") And c.Contains("U") And c.Contains("Y") Then MessageBox.Show("ok")
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  6. #6
    Membre émérite

    Homme Profil pro
    Inscrit en
    Mars 2012
    Messages
    691
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Israël

    Informations forums :
    Inscription : Mars 2012
    Messages : 691
    Par défaut
    Bonjour

    Oui suivre le conseil de DonQuiche la solution la plus simple sans que je me casse la tete avec le regex

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/10/2011, 13h17
  2. Réponses: 1
    Dernier message: 24/02/2011, 14h41
  3. [RegEx] regex pour verifier une operation mathematique
    Par flov91 dans le forum Langage
    Réponses: 2
    Dernier message: 11/02/2009, 14h03
  4. Réponses: 6
    Dernier message: 19/02/2007, 13h34
  5. Réponses: 17
    Dernier message: 24/11/2006, 13h56

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