Fonction IsMatch dans PowerAppsIsMatch function in PowerApps

Teste si une chaîne de texte correspond à un modèle.Tests whether a text string matches a pattern.

DescriptionDescription

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.The IsMatch function tests whether a text string matches a pattern that can comprise ordinary characters, predefined patterns, or a regular expression.

Utilisez la fonction IsMatch pour vérifier la saisie d’un utilisateur dans un contrôle Text-Input.Use IsMatch to validate what a user has typed in a Text input control. 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.For example, you can confirm whether the user has entered a valid email address before the result is saved to your data source. Si l’entrée ne correspond pas à vos critères, ajoutez d’autres contrôles invitant l’utilisateur à corriger l’entrée.If the entry doesn't match your criteria, add other controls that prompt the user to correct the entry.

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.By default, IsMatch performs a case-sensitive match for the entire text string. Vous pouvez modifier ce comportement en spécifiant une ou plusieurs options MatchOptions.You can modify this behavior by specifying one or more 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.IsMatch returns true if the text string matches the pattern or false if it doesn't.

ModèlesPatterns

L’utilisation de la fonction IsMatch repose principalement sur la description du modèle à mettre en correspondance.The key to using IsMatch is in describing the pattern to match. Vous devez décrire le modèle dans une chaîne de texte en combinant les éléments suivants :You describe the pattern in a text string as a combination of:

  • Caractères ordinaires, tels que « abc » ou « 123 »Ordinary characters, such as "abc" or "123".
  • Modèles prédéfinis, comme Letter, MultipleDigits ou EmailPredefined patterns, such as Letter, MultipleDigits, or Email. (l’enum Match définit ces modèles).(The Match enum defines these patterns.)
  • Codes d’expressions régulières, comme "\d+\s+\d+" ou "[a-z]+".Regular expressions codes, such as "\d+\s+\d+" or "[a-z]+".

Combinez ces éléments à l’aide de l’opérateur de concaténation de chaîne&.Combine these elements by using the string concatenation operator &. 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.For example, "abc" & Digit & "\s+" is a valid pattern that matches the characters "a", "b", and "c", followed by a digit from 0 to 9, followed by at least one whitespace character.

Caractères ordinairesOrdinary characters

Le modèle le plus simple consiste à définir une séquence de caractères ordinaires avec correspondance exacte.The simplest pattern is a sequence of ordinary characters to be matched exactly.

Par exemple, la chaîne « Hello » correspond au modèle « Hello » de façonFor example, the string "Hello" matches the pattern "Hello" exactly. rigoureusement exacte.No more and no less. La chaîne « hello ! »The string "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.doesn't match the pattern because of the exclamation point on the end and the case is wrong for the letter "h". (Voir MatchOptions pour savoir comment modifier ce comportement.)(See MatchOptions for ways to modify this behavior.)

Dans le langage du modèle, certains caractères sont réservés à des fins spécifiques.In the pattern language, certain characters are reserved for special purposes. 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.To use these characters, either prefix the character with a \ (backslash) to indicate that the character should be taken literally or use one of the predefined patterns. Le tableau suivant répertorie les caractères spéciaux :This table lists the special characters:

Caractère spécialSpecial character DescriptionDescription
.. pointdot or period
?? point d’interrogationquestion mark
** astérisqueasterisk
+ plusplus
( )( ) parenthèseparenthesis
[ ][ ] crochetssquare brackets
{ }{ } accoladescurly braces
^ accent circonflexecaret
$ signe dollardollar sign
|| barre verticalevertical bar or pipe
\ barre oblique inversebackslash

Par exemple, vous pouvez faire correspondre « Hello ?»For example, you can match "Hello?" en utilisant le modèle « Hello \? »by using the pattern "Hello\?" avec une barre oblique inverse avant le point d’interrogation.with a backslash before the question mark.

Modèles prédéfinisPredefined patterns

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.Predefined patterns provide a simple way to match one of a set of characters, or a sequence of multiple characters. 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 :Use the string concatenation operator & to combine your own text strings with members of the Match enum:

Enum MatchMatch Enum DescriptionDescription Expression régulièreRegular Expression
AnyAny Correspond à n’importe quel caractère.Matches any character. ..
CommaComma Correspond à une virgule.Matches a comma. ,,
DigitDigit Correspond à un chiffre unique (compris entre « 0 » et « 9 »).Matches a single digit ("0" through "9"). \d\d
EmailEmail Correspond à une adresse e-mail contenant le symbole « @ » et un nom de domaine avec un point («. »)Matches an email address that contains an "at" symbol ("@") and a domain name that contains a dot (".") .+@.+\.[^\.]{2,}.+@.+\.[^\.]{2,}
HyphenHyphen Correspond à un trait d’union.Matches a hyphen. \-
LeftParenLeftParen Correspond à une parenthèse ouvrante « ( ».Matches a left parenthesis "(". \(\(
LetterLetter Correspond à une lettre.Matches a letter. \p{L}\p{L}
MultipleDigitsMultipleDigits Correspond à un ou plusieurs chiffres.Matches one or more digitis. \d+\d+
MultipleLettersMultipleLetters Correspond à une ou plusieurs lettres.Matches one or more letters. \p{L}+\p{L}+
MultipleNonSpacesMultipleNonSpaces Correspond à un ou plusieurs caractères qui n’ajoutent pas d’espace blanc (espace, tabulation, saut de ligne).Matches one or more characters that don't add whitespace (space, tab, newline). \S+\S+
MultipleSpacesMultipleSpaces Correspond à un ou plusieurs caractères qui ajoutent un espace blanc (espace, tabulation, saut de ligne).Matches one or more characters that add whitespace (space, tab, newline). \s+\s+
NonSpaceNonSpace Correspond à un caractère unique qui n’ajoute pas d’espace blanc.Matches a single character that doesn't add whitespace. \S\S
OptionalDigitsOptionalDigits Correspond à zéro, un ou plusieurs chiffres.Matches zero, one, or more digits. \d\d
OptionalLettersOptionalLetters Correspond à zéro, une ou plusieurs lettres.Matches zero, one, or more letters. \p{L}\p{L}
OptionalNonSpacesOptionalNonSpaces Correspond à zéro, un ou plusieurs caractères qui n’ajoutent pas d’espace blanc.Matches zero, one, or more characters that don't add whitespace. \S\S
OptionalSpacesOptionalSpaces Correspond à zéro, un ou plusieurs caractères qui ajoutent un espace blanc.Matches zero, one, or more characters that add whitespace. \s\s
PeriodPeriod Correspond à un point («. »).Matches a period or dot ("."). \.\.
RightParenRightParen Correspond à une parenthèse fermante « ) ».Matches a right parenthesis ")". \)\)
SpaceSpace Correspond à un caractère qui ajoute un espace blanc.Matches a character that adds whitespace. \s\s

Par exemple, le modèle "A" & MultipleDigits correspond à la lettre « A » suivie d’un ou plusieurs chiffres.For example, the pattern "A" & MultipleDigits will match the letter "A" followed by one or more digits.

Expressions régulièresRegular expressions

Le modèle utilisé par la fonction IsMatch est une expression régulière.The pattern used by IsMatch is a regular expression. 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.The ordinary characters and predefined patterns that are described above help build regular expressions.

Les expressions régulières sont très performantes, disponibles dans de nombreux langages de programmation et utilisées à de nombreuses fins.Regular expressions are very powerful, available in many programming languages, and used for a wide variety of purposes. 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.This article can't describe all aspects of regular expressions, but a wealth of information and tutorials are published on the web to aid you.

Il existe différents dialectes d’expressions régulières. PowerApps utilise une variante du dialecte JavaScript.Regular expressions have different dialects, and PowerApps uses a variant of the JavaScript dialect. Pour plus d’informations, consultez Regular expression syntax (Syntaxe des expressions régulières).For more information, see regular expression syntax.

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.In the Match enum table above, each enum expands into a regular expression, and the text string in the "Regular Expression" column defines that expression.

Options de correspondanceMatch options

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 (&).You can modify the behavior of IsMatch by specifying one or more options, which you can combine by using the string concatenation operator (&).

Par défaut, la fonction IsMatch vérifie la correspondance exacte de la chaîne de caractères complète.By default, IsMatch tests for a complete match of the entire text string.

Enum MatchOptionsMatchOptions Enum DescriptionDescription Impact sur l’expression régulièreImpact on regular expression
BeginsWithBeginsWith Le modèle doit correspondre au début du texte.The pattern must match from the beginning of the text. Ajoute un caractère ^ au début de l’expression régulière.Adds a ^ to the start of the regular expression.
CompleteComplete Par défaut.Default. Le modèle doit correspondre à l’intégralité du texte, du début à la fin.The pattern must match the entire text, from beginning to end. Ajoute un caractère ^ au début de l’expression régulière et un caractère $ à la fin.Adds a ^ to the start and $ to the end of the regular expression.
ContainsContains Le modèle doit apparaître dans le texte, mais ne doit pas nécessairement se trouver au début ou à la fin.The pattern must appear somewhere in the text but doesn't need to begin or end it. L’expression régulière n’est pas modifiée.Doesn't modify the regular expression.
EndsWithEndsWith Le modèle doit correspondre à la fin du texte.The pattern must match the end of the text. Ajoute un caractère $ à la fin de l’expression régulière.Adds a $ to the end of the regular expression.
IgnoreCaseIgnoreCase Traite la correspondance des lettres sans tenir compte de la casse.Treats the matching of letters in a case-insensitive manner. Par défaut, la casse est prise en compte pour la correspondance.By default, matching is case sensitive. L’expression régulière n’est pas modifiée.Doesn't modify the regular expression.
MultilineMultiline La correspondance porte sur plusieurs lignes.Matches across multiple lines. L’expression régulière n’est pas modifiée.Doesn't modify the regular expression.

SyntaxeSyntax

IsMatch( Text, Pattern [, Options ] )IsMatch( Text, Pattern [, Options ] )

  • Text – Requis.Text – Required. La chaîne de texte à tester.The text string to test.
  • Pattern – Requis.Pattern – Required. Le modèle à tester, comme une chaîne de texte.The pattern to test, as a text string. Concaténez des modèles prédéfinis qui sont définis par l’enum Match, ou fournissez une expression régulière.Concatenate predefined patterns that the Match enum defines or provide a regular expression.
  • Options – Facultatif.Options – Optional. Une combinaison de valeurs enum MatchOptions dans une chaîne de texte.A text string combination of MatchOptions enum values. Par défaut, MatchOptions.Complete est utilisé.By default, MatchOptions.Complete is used.

ExemplesExamples

Caractères ordinairesOrdinary characters

Imaginez que votre application contienne un contrôle Text-Input nommé TextInput1.Imagine that your app contains a Text input control named TextInput1. L’utilisateur entre dans ce contrôle des valeurs à stocker dans une base de données.The user enters values into this control to be stored in a database.

L’utilisateur tape Hello world dans TextInput1.The user types Hello world into TextInput1.

FormuleFormula DescriptionDescription RésultatResult
IsMatch( TextInput1.Text, "Hello world" )IsMatch( TextInput1.Text, "Hello world" ) Teste si l’entrée de l’utilisateur correspond exactement à la chaîne « Hello world »Tests whether the user's input matches, exactly, the string "Hello world" truetrue
IsMatch( TextInput1.Text, "Good bye" )IsMatch( TextInput1.Text, "Good bye" ) Teste si l’entrée de l’utilisateur correspond exactement à la chaîne « Good bye »Tests whether the user's input matches, exactly, the string "Good bye" falsefalse
IsMatch( TextInput1.Text, "hello", Contains )IsMatch( TextInput1.Text, "hello", Contains ) Teste si l’entrée de l’utilisateur contient le mot « hello » (la casse est prise en compte).Tests whether the user's input contains the word "hello" (case sensitive). falsefalse
IsMatch( TextInput1.Text, "hello", Contains & IgnoreCase )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).Tests whether the user's input contains the word "hello" (case insensitive). truetrue

Modèles prédéfinisPredefined patterns

FormuleFormula DescriptionDescription RésultatResult
IsMatch( "123-45-7890", Digit & Digit & Digit & Hyphen & Digit & Digit & Hyphen & Digit & Digit & Digit & Digit & Digit )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-UnisMatches a United States Social Security Number truetrue
IsMatch( "joan@contoso.com", Email )IsMatch( "joan@contoso.com", Email ) Correspond à une adresse e-mailMatches an email address truetrue
IsMatch( "123.456", MultipleDigits & Period & OptionalDigits )IsMatch( "123.456", MultipleDigits & Period & OptionalDigits ) Correspond à une séquence de chiffres suivie d’un point, puis de zéro, un ou plusieurs chiffres.Matches a sequence of digits, a period, and then zero or more digits. truetrue
IsMatch( "123", MultipleDigits & Period & OptionalDigits )IsMatch( "123", MultipleDigits & Period & OptionalDigits ) Correspond à une séquence de chiffres suivie d’un point, puis de zéro, un ou plusieurs chiffres.Matches a sequence of digits, a period, and then zero or more digits. Aucun point n’apparaît pas dans le texte. Par conséquent, aucune correspondance avec ce modèle n’est trouvée.A period doesn't appear in the text, so this pattern isn't matched. falsefalse

Expressions régulièresRegular expressions

FormuleFormula DescriptionDescription RésultatResult
IsMatch( "986", "\d+" )IsMatch( "986", "\d+" ) Correspond à un entier supérieur à zéro.Matches a an integer greater than zero. truetrue
IsMatch( "1.02", "\d+(.\d\d)?" )IsMatch( "1.02", "\d+(.\d\d)?" ) Correspond à un montant monétaire positif.Matches a positive currency amount. Le cas échéant, l’entrée doit contenir deux décimales et non une seule.If the input contains a decimal point, the input must also contain 2 numeric characters after the decimal point. Par exemple, 3.00 est une valeur valide, mais 3.1 ne l’est pas.For example, 3.00 is valid, but 3.1 isn't. truetrue
IsMatch( "-4.95", "(-)?\d+(.\d\d)?" )IsMatch( "-4.95", "(-)?\d+(.\d\d)?" ) Correspond à un montant monétaire positif ou négatif.Matches a positive or negative currency amount. Le cas échéant, l’entrée doit contenir deux décimales et non une seule.If the input contains a decimal point, the input must also contain 2 numeric characters after the decimal point. truetrue
IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" )IsMatch( "111-11-1111", "\d{3}-\d{2}-\d{4}" ) Correspond à un numéro de sécurité sociale aux États-Unis.Matches a United States Social Security number. Valide le format, le type et la longueur du champ d’entrée fourni.Validates the format, type, and length of the supplied input field. 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.The string to match must consist of 3 numeric characters followed by a dash, then 2 numeric characters followed by a dash, and then 4 numeric characters. truetrue
IsMatch( "111-111-111", "\d{3}-\d{2}-\d{4}" )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.Same as the previous example, but one of the hyphens is out of place in the input. falsefalse
IsMatch( "weakpassword", "(?!^[0-9]*$)(?!^[a-zA-Z]*$)([a-zA-Z0-9]{8,10})" )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.Validates a strong password, which must contain 8, 9, or 10 characters, in addition to at least one digit and at least one alphabetic character. La chaîne ne doit pas contenir de caractères spéciaux.The string must not contain special characters. falsefalse
IsMatch( "http://microsoft.com", "(ht|f)tp(s?)://[0-9a-zA-Z]([-.\w]\[0-9a-zA-Z])\(:(0-9)\)\(/?)([a-zA-Z0-9-.?,'/\+&%$#_]\*)?" )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.Validates an http, https, or ftp URL. truetrue