DOCUMENTATION EN LIGNE
DE WINDEVWEBDEV ET WINDEV MOBILE

Aide / WLangage / Fonctions WLangage / Fonctions standard / Fonctions de gestion des chaînes
  • Caractère d'échappement
  • Caractères spéciaux
  • Utiliser une condition dans une expression régulière
WINDEV
WindowsLinuxUniversal Windows 10 AppJavaEtats et RequêtesCode Utilisateur (MCU)
WEBDEV
WindowsLinuxPHPWEBDEV - Code Navigateur
WINDEV Mobile
AndroidWidget AndroidiPhone/iPadWidget IOSApple WatchMac CatalystUniversal Windows 10 App
Autres
Procédures stockées
Avertissement
A partir de la version 27, cette fonction est conservée par compatibilité. Il est recommandé d'utiliser la fonction RegexVérifie, qui utilise la grammaire ECMAScript pour les expressions régulières.
Vérifie si une chaîne de caractères correspond à un format spécifique et récupère les différentes sous-chaînes constituant le format. Un assistant dans l'éditeur de code permet de créer simplement le format à vérifier.
Exemple
Etats et Requêtes
// Vérification d'une adresse email 
SI VérifieExpressionRégulière(MonEmail, "[-.a-z0-9]+[@][-.a-z0-9]+[.][a-z]{2,4}") = Vrai ALORS
	// "[-.a-z0-9]+" : chaîne de 1 ou de plusieurs caractères
	// Cette chaîne peut contenir les lettres 'a' à 'z',
	// les chiffres '0' à '9', et les symboles '-' et '.'
	// [.] indique que ce caractère doit correspondre à un point. 
	// "[a-z]{2,4}" : chaîne contenant 2, 3 ou 4 caractères
	// Cette chaîne peut contenir les lettres 'a' à 'z'
	Info("L'adresse email : " + MonEmail + " est correcte.")
FIN
Etats et Requêtes
// Extraction des différents éléments d'une date
// au format JJ/MM/AAAA (par exemple : 28/03/2003)
MaDate est une chaîne = "28/03/2003"
MonJour, MonMois, MonAnnée sont des chaînes
SI VérifieExpressionRégulière(MaDate, "([0-9]+)/([0-9]+)/([0-9]+)", ...
		MonJour, MonMois, MonAnnée) = Vrai ALORS
	Trace(MonJour, MonMois, MonAnnée)
SINON
	Erreur("La date n'est pas au bon format")
FIN
Etats et Requêtes
// Variables d'extraction
UnJour est une chaîne
UnMois est une chaîne
UneAnnée est une chaîne
UneHeure est une chaîne
DateAVérifier est une chaîne = "Tue, 11 Apr 2006 18:25:09 +0200"
SI VérifieExpressionRégulière(DateAVérifier, ...
		"[A-Za-z]{3,3}[,] ([0-9]{1,2}) ([A-Za-z]{3,3}) "+...
		"([0-9]{4,4}) ([0-9]{2,2}[:][0-9]{2,2}[:][0-9]{2,2}) [\+][0-9]{4,4}", ...
		UnJour, UnMois, UneAnnée, UneHeure) = Faux ALORS
	Info("Date incorrecte")
SINON
	Info("Date correcte", "Jour : " + UnJour, "Mois :" + UnMois, "Année : " + UneAnnée, ...
		"Heure : " + UneHeure)
FIN
Syntaxe

Vérifier un format Masquer les détails

<Résultat> = VérifieExpressionRégulière(<Elément à vérifier> , <Expression régulière>)
<Résultat> : Booléen
  • Vrai si la chaîne vérifie le format indiqué,
  • Faux si la chaîne ne vérifie pas le format.
<Elément à vérifier> : Chaîne de caractères
Chaîne de caractères à vérifier. Cette chaîne de caractères doit être en caractères latin.
<Expression régulière> : Chaîne de caractères
Format de référence, exprimé sous forme d'une expression régulière. Cette chaîne de caractères doit être en caractères latin. Ce format utilise les caractères suivants :
A B C - / _Lettres et symboles à vérifier.
[A-Z] ou [0-9]Intervalle de lettres, de chiffres ou de symboles à vérifier.
*0 ou plusieurs symboles à vérifier.
+1 ou plusieurs symboles à vérifier.
\WVérifie si un caractère spécial est présent (par exemple &, #, @, ...).

Remarque : L'utilisation du caractère | (pipe) permet de définir une condition de type "OU".

Vérifier un format et récupérer les éléments correspondant au format Masquer les détails

<Résultat> = VérifieExpressionRégulière(<Elément à vérifier> , <Expression régulière> , <Variable 1> ... [, <Variable N>])
<Résultat> : Booléen
  • Vrai si la chaîne vérifie le format indiqué,
  • Faux si la chaîne ne vérifie pas le format.
<Elément à vérifier> : Chaîne de caractères
Chaîne de caractères à vérifier. Cette chaîne de caractères doit être en caractères latin.
<Expression régulière> : Chaîne de caractères
Format de référence exprimé sous forme d'une expression régulière. Cette chaîne de caractères doit être en caractères latin. Ce format utilise les caractères suivants :
A B C - / _Lettres et symboles à vérifier.
[A-Z] ou [0-9]Intervalle de lettres, de chiffres ou de symboles à vérifier.
*0 ou plusieurs symboles à vérifier.
+1 ou plusieurs symboles à vérifier.
\WVérifie si un caractère spécial est présent (par exemple &, #, @, ...).
( )Délimitation d'une partie du format pour lequel l'élément correspondant devra être extrait.
{ }Nombre de répétitions autorisées pour l'expression précédente (de la forme {min, max}).

Remarque : L'utilisation du caractère | (pipe) permet de définir une condition de type "OU".
<Variable 1> : Chaîne de caractères, Entier, ...
Variable qui sera automatiquement initialisée avec la valeur correspondant à la première partie du <Format>. Chaque partie est définie par les caractères '(' et ')'.
<Variable N> : Chaîne de caractères, Entier, ...
Variable qui sera automatiquement initialisée avec la valeur correspondant à la Nième partie du <Format>. Chaque partie est définie par les caractères '(' et ')'.
Etats et Requêtes

Vérifier un format et récupérer les éléments correspondant au format dans un tableau Masquer les détails

<Résultat> = VérifieExpressionRégulière(<Elément à vérifier> , <Expression régulière> , <Tableau de chaînes>)
<Résultat> : Booléen
  • Vrai si la chaîne vérifie le format indiqué,
  • Faux si la chaîne ne vérifie pas le format.
<Elément à vérifier> : Chaîne de caractères
Chaîne de caractères à vérifier. Cette chaîne de caractères doit être en caractères latin.
<Expression régulière> : Chaîne de caractères
Format de référence. Cette chaîne de caractères doit être en caractères latin. Ce format utilise les caractères suivants :
A B C - / _Lettres et symboles à vérifier.
[A-Z] ou [0-9]Intervalle de lettres, de chiffres ou de symboles à vérifier.
*0 ou plusieurs symboles à vérifier.
+1 ou plusieurs symboles à vérifier.
\WVérifie si un caractère spécial est présent (par exemple &, #, @, ...).
( )Délimitation d'une partie du format pour lequel l'élément correspondant devra être extrait.
{ }Nombre de répétitions autorisées pour l'expression précédente (de la forme {min, max}).

Remarque : L'utilisation du caractère | (pipe) permet de définir une condition de type "OU".
<Tableau de chaînes> : Tableau
Nom du tableau à remplir. Les différents éléments du tableau seront automatiquement initialisés avec les valeurs correspondant aux différentes parties du <Format>.
Remarques
Etats et Requêtes

Caractère d'échappement

Le caractère d'échappement est "\". Ainsi, pour vérifier que le caractère { par exemple est bien dans la chaîne, l'expression régulière sera [\{]. Ce caractère d'échappement peut également être utilisé avec le caractère "+" et "*".
Utilisé avec W, il permet de vérifier la présence d'un caractère spécial (#, &, @, ...) dans la chaîne. Exemple :
SI PAS VérifieExpressionRégulière(SAI_SansNom1, ".*\W.*") ALORS
	Erreur("Pas de caractères spéciaux dans la chaîne")
SINON
	Info("La chaîne contient au moins un caractère spécial")

FIN
Etats et Requêtes

Caractères spéciaux

Les caractères suivants peuvent également être utilisés dans le format :
  • TAB pour vérifier la présence d'une tabulation. Par exemple :
    VérifieExpressionRégulière(sChaîne, "1" + TAB + "2")
  • RC pour vérifier la présence d'un Retour Chariot. Par exemple :
    VérifieExpressionRégulière(sChaîne, "1" + RC + "2")
Etats et Requêtes

Utiliser une condition dans une expression régulière

L'utilisation du caractère | (pipe) permet de définir une condition de type "OU".
Ainsi, l'expression "[0-9]{6,6}[_](AVIS|avis|QCM|qcm)[_][0-9]{8,8}" permet de vérifier ces deux types d'expression :
  • 123456_avis_20120913
  • 123456_QCM_20120913
Liste des exemples associés :
Les expressions régulières Exemples unitaires (WINDEV) : Les expressions régulières
[ + ] Utilisation des expressions régulières avec WINDEV.
Deux types d'utilisation des expressions régulières sont présentés :
- vérification du format d'une saisie
- extraction des différents éléments respectant le format d'une saisie.
Cet exemple montre également comment rechercher un mot dans une chaîne, avec possiblité de ne pas prendre en compte la casse, le début ou la fin d'une chaîne, mais également de ne pas tenir compte des espaces (n'importe où dans la chaîne, y compris dans le mot recherché)
Les expressions régulières Exemples unitaires (WINDEV Mobile) : Les expressions régulières
[ + ] Utilisation des expressions régulières avec WINDEV Mobile.
Il montre 2 types d'utilisation des expressions régulières :
- vérifier le format d'une saisie
- extraire les différents éléments respectant le format d'une saisie.
Cet exemple montre également comment rechercher un mot dans une chaîne, avec possiblité de ne pas prendre en compte la casse, le début ou la fin d'une chaîne, mais également de ne pas tenir compte des espaces (n'importe où dans la chaîne, y compris dans le mot recherché)
Masque de saisie avancé Exemples unitaires (WINDEV) : Masque de saisie avancé
[ + ] Manipulation des masques de saisie dans WINDEV :
- Définition du format des positifs/négatifs dans un champ de saisie numérique
- Définition de l'apparence des négatifs dans un champ de saisie numérique
- Définition de l'apparence de la valeur 0 dans un champ de saisie numérique
- Utilisation d'une expression régulière pour empêcher la saisie d'autres caractères que les chiffres 1, 2, 3, 4, 5 et 6.
- Utilisation d'une expression régulière pour "réguler" la saisie d'un numéro de plaque d'immatriculation français
Classification Métier / UI : Code neutre
Composante : wd300std.dll
Version minimum requise
  • Version 9
Documentation également disponible pour…
Commentaires
Le symbole point (.)
Cela n'est pas dit dans la documentation, mais le symbole point (.) permet de capturer n'importe quel caractères (ils peuvent être différents).

Par exemple :

. => Capture une fois n'importe quel caractère
.+ => Capture une ou plusieurs fois n'importe quels caractères => Capture n'importe quelle expression non vide
.* => Capture zéro, une ou plusieurs fois n'importe quels caractères => Capture n'importe quelle expression, même vide
Johjo
01 aoû. 2020

Dernière modification : 07/03/2024

Signaler une erreur ou faire une suggestion | Aide en ligne locale