Contrôle de 2 variables avec RegEx [Résolu]

Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- - Dernière réponse : cs_JMO
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
- 11 nov. 2016 à 20:58
Bonsoir le forum,
Je souhaite contrôler le contenu de deux variables.
Si var1 ou var2 contiennent ";" et/ou ":" alors True.
Dans mes tests avec Regex, j'ai contatené var1 et var2,
est-ce la bonne méthode ???
        Dim testPlanningGlobal As String = "L-VD 0-24"
        Dim testPlanningService As String = "L-V 7:30-19"

        Dim testPlannings As String = testPlanningGlobal & testPlanningService

        If returnMatchPlanning(testPlannings) = True Then
            MessageBox.Show(testPlanningGlobal & Environment.NewLine & testPlanningService)
        End If

    Function returnMatchPlanning(ByVal word As String) As Boolean
        Dim patern As String = "[:;]"
        For Each m As Match In Regex.Matches(word, patern)
            If (m.Success) Then
                Return True
            End If
        Next
        Return False
    End Function

Merci de vos suggestions.
jean-marc
Afficher la suite 

Votre réponse

2 réponses

Messages postés
14319
Date d'inscription
vendredi 14 mars 2003
Statut
Modérateur
Dernière intervention
11 décembre 2018
0
Merci
Si c'est juste pour vérifier si une chaine contient l'un et/ou l'autre, il y a plus simple et surtout moins compliqué/lourd qu'un regex :
Dim lToTest=";:"
For Each lChar in lToTest
    If MaChaine.Contains(lChar) Then Return True;
Next
Return False

(Code tapé rapidement donc peut être à adapter)
Whismeril
Messages postés
12374
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
13 décembre 2018
-
Bonsoir,

même un poil plus court
Return texte.Contains(":") Or texte.Contains(";")
Commenter la réponse de NHenry
Messages postés
1855
Date d'inscription
jeudi 23 mai 2002
Dernière intervention
24 juin 2018
0
Merci
Merci à NHenry et Whismeril de vos propositions,

J'en conclus que le concaténation des deux variables est préférable au lieu d'utiliser if var1 ... = True And var2 ... = True;

        Dim testPlanningGlobal As String = "L-VD 0-24"
        Dim testPlanningService As String = "L-V 73019"

        Dim testPlannings As String = testPlanningGlobal & testPlanningService

        If (testPlannings.Contains(":") Or testPlannings.Contains(";")) = True Then
            MessageBox.Show("contient  : ou ;")
        Else
            MessageBox.Show("ne contient ni : ni ;")
        End If


Je valide donc vos réponses.

Bonne soirée à vous.

jean-marc
Commenter la réponse de cs_JMO

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.