Teste si une chaîne de texte correspond à un modèle.

Description

La fonction IsMatch teste si une chaîne de texte correspond à un modèle qui peut comprendre des caractères ordinaires, des modèles prédéfinis ou une expression régulière.

Utilisez la fonction IsMatch pour vérifier la saisie d’un utilisateur dans un contrôle Text-Input. Par exemple, vous pouvez vérifier si l’utilisateur a entré une adresse e-mail valide avant l’enregistrement du résultat dans votre source de données. Si l’entrée ne correspond pas à vos critères, ajoutez d’autres contrôles invitant l’utilisateur à corriger l’entrée.

Par défaut, la vérification de la correspondance par la fonction IsMatch tient compte de la casse pour l’ensemble de la chaîne de texte. Vous pouvez modifier ce comportement en spécifiant une ou plusieurs options MatchOptions.

La fonction IsMatch retourne true si la chaîne de texte correspond au modèle et false si ce n’est pas le cas.

Modèles

L’utilisation de la fonction IsMatch repose principalement sur la description du modèle à mettre en correspondance. Vous devez décrire le modèle dans une chaîne de texte en combinant les éléments suivants :

  • Caractères ordinaires, tels que « abc » ou « 123 »
  • Modèles prédéfinis, comme Letter, MultipleDigits ou Email (l’enum Match définit ces modèles).
  • Codes d’expressions régulières, comme "\d+\s+\d+" ou "[a-z]+".

Combinez ces éléments à l’aide de l’opérateur de concaténation de chaîne&. Par exemple, le modèle "abc" & Digit & "\s+" est un modèle valide qui correspond aux caractères « a », « b » et « c », suivis d’un chiffre compris entre 0 et 9, puis d’au moins un espace blanc.

Caractères ordinaires

Le modèle le plus simple consiste à définir une séquence de caractères ordinaires avec correspondance exacte.

Par exemple, la chaîne « Hello » correspond au modèle « Hello » de façon rigoureusement exacte. La chaîne « hello ! » ne correspond pas au modèle car elle se termine par un point d’exclamation. De plus, la casse de la lettre « h » est incorrecte. (Voir MatchOptions pour savoir comment modifier ce comportement.)

Dans le langage du modèle, certains caractères sont réservés à des fins spécifiques. Pour utiliser ces caractères, faites-les précéder d’une barre oblique inverse (\) pour indiquer qu’ils doivent doit être pris en compte de façon littérale, ou utilisez l’un des modèles prédéfinis. Le tableau suivant répertorie les caractères spéciaux :

Caractère spécial Description
. point
? point d’interrogation
*** astérisque
+ plus
( ) parenthèse
[ ] crochets
{ } accolades
^ accent circonflexe
$ signe dollar
| barre verticale
**** barre oblique inverse

Par exemple, vous pouvez faire correspondre « Hello ?» en utilisant le modèle « Hello \? » avec une barre oblique inverse avant le point d’interrogation.

Modèles prédéfinis

Les modèles prédéfinis offrent un moyen simple de faire correspondre un caractère d’un jeu de caractères ou une séquence de caractères. Utilisez l’opérateur de concaténation de chaîne & pour combiner vos propres chaînes de texte avec les éléments de l’enum Match :

Enum Match Description Expression régulière
Any Correspond à n’importe quel caractère. .
Comma Correspond à une virgule. ,
Digit Correspond à un chiffre unique (compris entre « 0 » et « 9 »). \d
Email Correspond à une adresse e-mail contenant le symbole « @ » et un nom de domaine avec un point («. ») .+@.+\.[^\.]{2,}
Hyphen Correspond à un trait d’union. \-
LeftParen Correspond à une parenthèse ouvrante « ( ». \(
Letter Correspond à une lettre. \p{L}
MultipleDigits Correspond à un ou plusieurs chiffres. \d+
MultipleLetters Correspond à une ou plusieurs lettres. \p{L}+
MultipleNonSpaces Correspond à un ou plusieurs caractères qui n’ajoutent pas d’espace blanc (espace, tabulation, saut de ligne). \S+
MultipleSpaces Correspond à un ou plusieurs caractères qui ajoutent un espace blanc (espace, tabulation, saut de ligne). \s+
NonSpace Correspond à un caractère unique qui n’ajoute pas d’espace blanc. \S
OptionalDigits Correspond à zéro, un ou plusieurs chiffres. \d
OptionalLetters Correspond à zéro, une ou plusieurs lettres. \p{L}
OptionalNonSpaces Correspond à zéro, un ou plusieurs caractères qui n’ajoutent pas d’espace blanc. \S
OptionalSpaces Correspond à zéro, un ou plusieurs caractères qui ajoutent un espace blanc. \s
Period Correspond à un point («. »). \.
RightParen Correspond à une parenthèse fermante « ) ». \)
Space Correspond à un caractère qui ajoute un espace blanc. \s

Par exemple, le modèle "A" & MultipleDigits correspond à la lettre « A » suivie d’un ou plusieurs chiffres.

Expressions régulières

Le modèle utilisé par la fonction IsMatch est une expression régulière. Les caractères ordinaires et les modèles prédéfinis qui sont décrits ci-dessus simplifient la création d’expressions régulières.

Les expressions régulières sont très performantes, disponibles dans de nombreux langages de programmation et utilisées à de nombreuses fins. Cet article ne peut pas décrire tous les aspects des expressions régulières, mais vous trouverez sur Internet une mine d’informations et de nombreux didacticiels.

Il existe différents dialectes d’expressions régulières. PowerApps utilise une variante du dialecte JavaScript. Pour plus d’informations, consultez Regular expression syntax (Syntaxe des expressions régulières).

Dans le tableau sur les enum Match ci-dessus, chaque enum se développe en une expression régulière. La chaîne de texte de la colonne « Expression régulière » définit cette expression.

Options de correspondance

Vous pouvez modifier le comportement de la fonction IsMatch en spécifiant une ou plusieurs options, que vous pouvez combiner à l’aide de l’opérateur de concaténation de chaîne (&).

Par défaut, la fonction IsMatch vérifie la correspondance exacte de la chaîne de caractères complète.

Enum MatchOptions Description Impact sur l’expression régulière
BeginsWith Le modèle doit correspondre au début du texte. Ajoute un caractère ^ au début de l’expression régulière.
Complete Par défaut. Le modèle doit correspondre à l’intégralité du texte, du début à la fin. Ajoute un caractère ^ au début de l’expression régulière et un caractère $ à la fin.
Contains Le modèle doit apparaître dans le texte, mais ne doit pas nécessairement se trouver au début ou à la fin. L’expression régulière n’est pas modifiée.
EndsWith Le modèle doit correspondre à la fin du texte. Ajoute un caractère $ à la fin de l’expression régulière.
IgnoreCase Traite la correspondance des lettres sans tenir compte de la casse. Par défaut, la casse est prise en compte pour la correspondance. L’expression régulière n’est pas modifiée.
Multiline La correspondance porte sur plusieurs lignes. L’expression régulière n’est pas modifiée.

Syntaxe

IsMatch( Text, Pattern [, Options ] )

  • Text – Requis. La chaîne de texte à tester.
  • Pattern – Requis. Le modèle à tester, comme une chaîne de texte. Concaténez des modèles prédéfinis qui sont définis par l’enum Match, ou fournissez une expression régulière.
  • Options – Facultatif. Une combinaison de valeurs enum MatchOptions dans une chaîne de texte. Par défaut, MatchOptions.Complete est utilisé.

Exemples

Caractères ordinaires

Imaginez que votre application contienne un contrôle Text-Input nommé TextInput1. L’utilisateur entre dans ce contrôle des valeurs à stocker dans une base de données.

L’utilisateur tape Hello world dans TextInput1.

Formule Description Résultat
IsMatch( TextInput1.Text, "Hello world" ) Teste si l’entrée de l’utilisateur correspond exactement à la chaîne « Hello world » true
IsMatch( TextInput1.Text, "Good bye" ) Teste si l’entrée de l’utilisateur correspond exactement à la chaîne « Good bye » false
IsMatch( TextInput1.Text, "hello", Contains ) Teste si l’entrée de l’utilisateur contient le mot « hello » (la casse est prise en compte). false
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase ) Teste si l’entrée de l’utilisateur contient le mot « hello » (la casse n’est pas prise en compte). true

Modèles prédéfinis

Formule Description Résultat
IsMatch( "123-45-7890", Digit & Digit & Digit & Hyphen & Digit & Digit & Hyphen & Digit & Digit & Digit & Digit & Digit ) Correspond à un numéro de sécurité sociale aux États-Unis true
IsMatch( "joan@contoso.com", Email ) Correspond à une adresse e-mail true
IsMatch( "123.456", MultipleDigits & Period & OptionalDigits ) Correspond à une séquence de chiffres suivie d’un point, puis de zéro, un ou plusieurs chiffres. true
IsMatch( "123", MultipleDigits & Period & OptionalDigits ) Correspond à une séquence de chiffres suivie d’un point, puis de zéro, un ou plusieurs chiffres. Aucun point n’apparaît pas dans le texte. Par conséquent, aucune correspondance avec ce modèle n’est trouvée. false

Expressions régulières

Formule Description Résultat
IsMatch( "986", "\d+" ) Correspond à un entier supérieur à zéro. true
IsMatch( "1.02", "\d+(.\d\d)?" ) Correspond à un montant monétaire positif. Le cas échéant, l’entrée doit contenir deux décimales et non une seule. Par exemple, 3.00 est une valeur valide, mais 3.1 ne l’est pas. true
IsMatch( "-4.95", "(-)?\d+(.\d\d)?" ) Correspond à un montant monétaire positif ou négatif. Le cas échéant, l’entrée doit contenir deux décimales et non une seule. true
IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) Correspond à un numéro de sécurité sociale aux États-Unis. Valide le format, le type et la longueur du champ d’entrée fourni. La chaîne à mettre en correspondance doit contenir 3 caractères numériques suivis d’un tiret, 2 caractères numériques suivis d’un tiret, puis 4 caractères numériques. true
IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" ) Cette formule est similaire à celle de l’exemple précédent. Cependant, l’un des tirets est déplacé dans l’entrée. false
IsMatch( "weakpassword", "(?!^[0-9]$)(?!^[a-zA-Z]$)([a-zA-Z0-9]{8,10})" ) Valide un mot de passe fort, qui doit contenir 8, 9 ou 10 caractères, en plus d’au moins un chiffre et au moins un caractère alphabétique. La chaîne ne doit pas contenir de caractères spéciaux. false
IsMatch( "http://microsoft.com", "(ht|f)tp(s?):\/\/[0-9a-zA-Z]([-.\w][0-9a-zA-Z])(:(0-9))(\/?)([a-zA-Z0-9-.\?\,\'\/\+&%\$#_]*)?" ) Valide une URL http, https ou ftp. true