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 :

[vb2008] Comment savoir si une string n'est composé que de lettre ou de souligné


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut [vb2008] Comment savoir si une string n'est composé que de lettre ou de souligné
    Bonjour,

    Je recherche une méthode en vb.net met permettant de savoir si une chaine de caractère est composé de caractère [a-z] [A-Z] et du caractère souligné.

    en Delphi j'ai cette expression :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    If not (Chr[i] in ['A'..'Z','a'..'z','_'] ) then
    Message Erreur
    J'ai essayé avec cette regex :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    if (Regex.IsMatch(Machaine,"[A-Za-z]")) then
    Mais il ne semble pas correctement filtrer et je ne vois pas comment rajouter la verification du caractère underscore.

    Si qqn a une idée je suis preneur

    Je continue a chercher

    ++

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par narutobaka Voir le message
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    if (Regex.IsMatch(Machaine,"[A-Za-z]")) then
    Mais il ne semble pas correctement filtrer et je ne vois pas comment rajouter la verification du caractère underscore.
    Comme ça, tout simplement...

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    if (Regex.IsMatch(Machaine,"[A-Za-z_]")) then

  3. #3
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2006
    Messages
    700
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2006
    Messages : 700
    Par défaut
    Bonsoir,
    à tester :
    Il faut aussi tester l'expression du début (^) jusqu'à la fin ($), au moins un (+) caractère alphanumérique français, donc y compris les accents (\w) en excluant les nombres (-[0-9]).

  4. #4
    Membre extrêmement actif
    Inscrit en
    Avril 2008
    Messages
    2 573
    Détails du profil
    Informations personnelles :
    Âge : 65

    Informations forums :
    Inscription : Avril 2008
    Messages : 2 573
    Par défaut operteur like et caractere souligne
    bonjour narutobaka
    Aurais tu oublie le bon operateur Like?
    Un peu comme l'operateur 'in" de pascal.Tres puissant.
    voici le code dans le cas souleve.
    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
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
     
    'Symboles reserves de like et significations
    '? Tout caractère unique
    '* Zéro ou plusieurs caractères
    '# Tout chiffre (0-9)
    '[ charlist ]  Tout caractère présent dans charlist
    '[! charlist ] Tout caractère absent(caractere à exclure) 
    'Si un des symboles reserves ci-dessus  figure 
    'dans le Modele de chaine  à tester le mettre entre crochet
    Option Strict On
    Option Compare Text
    Public Class Form2
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            'Test 1
            'Affiche dans TextBox1 les caracteres correspondants
            'Affiche dans TextBox2 les caracteres non-correspondants 
            Me.TextBox1.Clear()
            Me.TextBox2.Clear()
            Dim testCheck As Boolean = False
            'Modele Alphanumetique
            Dim strPattern As String = "[a-zA-Z0-9]"
            Dim narutoStr As String = "NaRUtoBAKA_45"
     
            For Each ch As Char In narutoStr
                testCheck = ch Like strPattern
                If testCheck Then
                    Me.TextBox1.Text = Me.TextBox1.Text & ch
                Else
                    Me.TextBox2.Text = Me.TextBox2.Text & ch
                End If
            Next
     
        End Sub
     
        Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
            'Test 2 
            Me.TextBox1.Clear()
            Me.TextBox2.Clear()
            Dim testCheck As Boolean = False
            'Modele Alphanumetique +  caracteres soulignes
            Dim strPattern As String = "[a-zA-Z_]"
            Dim narutoStr As String = "AkABot_URaN_9"
     
            For Each ch As Char In narutoStr
                testCheck = ch Like strPattern
                If testCheck Then
                    Me.TextBox1.Text = Me.TextBox1.Text & ch
                Else
                    Me.TextBox2.Text = Me.TextBox2.Text & ch
                End If
            Next
        End Sub
     
     End Class
    BON CODE....

  5. #5
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    bonjour,

    @mabrouki, oulah tu as etais cherché ca où? y a nettement plus simple avec la methode ismatch.

    @tomlev Merci pour ta réponse, j'ai utilisé cette regex.

    Mon soucis venais surtout du fait que je voulais qu'il affiche un message d'erreur quand la chaine de caractère ne correspondait pas à l'expression régulière, j'avais ce qui donne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    Dim ExpressionReg as System.Text.RegularExpressions.regex = _
    New System.Text.RegularExpressions.regex("[A-Za-z_]{8}")
     
    If Not ExpressionReg.IsMatch(Mon_Texte) then
    Mon_Message_Erreur
    Encore merci pour votre aide

    Je met le post en résolu

    ++

  6. #6
    Membre très actif
    Profil pro
    Inscrit en
    Août 2005
    Messages
    483
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 483
    Par défaut
    bonjour,

    J'ai un ptit soucis avec ma regex. Apperemment {8} verifie que l'on est au moins 8 caractères.

    Je cherche l'expression indiquant strictement 8 caractères.

    Si quelqu'un à une idée.

    Je vais continuer mes recherches

    ++

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

Discussions similaires

  1. [PHP 5.3] Comment savoir si une string est dans une variable
    Par pierrot10 dans le forum Langage
    Réponses: 1
    Dernier message: 29/10/2011, 15h08
  2. Réponses: 2
    Dernier message: 21/02/2006, 17h53
  3. Comment savoir si une fenêtre s'est fermée
    Par niuniuk36 dans le forum Agents de placement/Fenêtres
    Réponses: 2
    Dernier message: 12/05/2005, 14h49
  4. Comment savoir si une impression s'est bien déroulé?
    Par Cyrilh7 dans le forum C++Builder
    Réponses: 5
    Dernier message: 19/11/2003, 20h49
  5. Réponses: 4
    Dernier message: 10/09/2002, 17h09

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