Regex.IsMatch Méthode
Définition
Important
Certaines informations portent sur la préversion du produit qui est susceptible d’être en grande partie modifiée avant sa publication. Microsoft exclut toute garantie, expresse ou implicite, concernant les informations fournies ici.
Indique si l’expression régulière trouve une correspondance dans la chaîne d’entrée.
Surcharges
| Nom | Description |
|---|---|
| IsMatch(String) |
Indique si l’expression régulière spécifiée dans le Regex constructeur trouve une correspondance dans une chaîne d’entrée spécifiée. |
| IsMatch(String, Int32) |
Indique si l’expression régulière spécifiée dans le Regex constructeur trouve une correspondance dans la chaîne d’entrée spécifiée, en commençant à la position de départ spécifiée dans la chaîne. |
| IsMatch(String, String) |
Indique si l’expression régulière spécifiée trouve une correspondance dans la chaîne d’entrée spécifiée. |
| IsMatch(String, String, RegexOptions) |
Indique si l’expression régulière spécifiée trouve une correspondance dans la chaîne d’entrée spécifiée, à l’aide des options de correspondance spécifiées. |
| IsMatch(String, String, RegexOptions, TimeSpan) |
Indique si l’expression régulière spécifiée trouve une correspondance dans la chaîne d’entrée spécifiée, à l’aide des options de correspondance et de l’intervalle de délai d’attente spécifiés. |
IsMatch(String)
Indique si l’expression régulière spécifiée dans le Regex constructeur trouve une correspondance dans une chaîne d’entrée spécifiée.
public:
bool IsMatch(System::String ^ input);
public bool IsMatch(string input);
member this.IsMatch : string -> bool
Public Function IsMatch (input As String) As Boolean
Paramètres
- input
- String
Chaîne à rechercher une correspondance.
Retours
true si l’expression régulière trouve une correspondance ; sinon, false.
Exceptions
input a la valeur null.
Un délai d’attente s’est produit. Pour plus d’informations sur les délais d’attente, consultez la section Remarques.
Exemples
L’exemple suivant illustre l’utilisation de la IsMatch(String) méthode pour déterminer si une chaîne est un numéro de partie valide. L’expression régulière suppose que le numéro de partie a un format spécifique qui se compose de trois jeux de caractères séparés par des traits d’union. Le premier jeu, qui contient quatre caractères, doit se composer d’un caractère alphanumérique suivi de deux caractères numériques suivis d’un caractère alphanumérique. Le deuxième jeu, qui se compose de trois caractères, doit être numérique. Le troisième jeu, composé de quatre caractères, doit avoir trois caractères numériques suivis d’un caractère alphanumérique.
string[] partNumbers = [ "1298-673-4192", "A08Z-931-468A",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" ];
Regex rgx = new Regex(@"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$");
foreach (string partNumber in partNumbers)
Console.WriteLine($"{partNumber} {(rgx.IsMatch(partNumber) ? "is" : "is not")} a valid part number.");
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468A is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468A", _
"_A90-123-129X", "12345-KKA-1230", _
"0919-2893-1256" }
Dim rgx As New Regex("^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$")
For Each partNumber As String In partNumbers
Console.WriteLine("{0} {1} a valid part number.", _
partNumber, _
IIF(rgx.IsMatch(partNumber), "is", "is not"))
Next
End Sub
End Module
' The example displays the following output:
' 1298-673-4192 is a valid part number.
' A08Z-931-468A is a valid part number.
' _A90-123-129X is not a valid part number.
' 12345-KKA-1230 is not a valid part number.
' 0919-2893-1256 is not a valid part number.
Le modèle d'expression régulière est le suivant :
^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$
Le tableau suivant montre comment le modèle d'expression régulière est interprété.
| Modèle | Description |
|---|---|
^ |
Commencez la correspondance au début de la ligne. |
[a-zA-Z0-9] |
Faire correspondre un caractère alphabétique unique (aà travers ou A à zZ) ou caractère numérique. |
\d{2} |
Mettre en correspondance deux caractères numériques. |
[a-zA-Z0-9] |
Faire correspondre un caractère alphabétique unique (aà travers ou A à zZ) ou caractère numérique. |
- |
Mettre en correspondance un trait d'union. |
\d{3} |
Mettre en correspondance exactement trois caractères numériques. |
(-\d{3}){2} |
Recherchez un trait d’union suivi de trois caractères numériques et faites correspondre deux occurrences de ce modèle. |
[a-zA-Z0-9] |
Faire correspondre un caractère alphabétique unique (aà travers ou A à zZ) ou caractère numérique. |
$ |
Terminez la correspondance à la fin de la ligne. |
Remarques
La IsMatch méthode est généralement utilisée pour valider une chaîne ou pour s’assurer qu’une chaîne est conforme à un modèle particulier sans récupérer cette chaîne pour une manipulation ultérieure. Si vous souhaitez déterminer si une ou plusieurs chaînes correspondent à un modèle d’expression régulière, puis récupérez-les pour une manipulation ultérieure, appelez la ou Matches la Match méthode.
L’exception RegexMatchTimeoutException est levée si l’heure d’exécution de l’opération correspondante dépasse l’intervalle de délai d’attente spécifié par le Regex.Regex(String, RegexOptions, TimeSpan) constructeur. Si vous ne définissez pas d’intervalle de délai d’attente lorsque vous appelez le constructeur, l’exception est levée si l’opération dépasse toute valeur de délai d’attente établie pour le domaine d’application dans lequel l’objet Regex est créé. Si aucun délai d’attente n’est défini dans l’appel du constructeur Regex ou dans les propriétés du domaine d’application, ou si la valeur du délai d’attente est Regex.InfiniteMatchTimeout, aucune exception n’est levée.
Voir aussi
S’applique à
IsMatch(String, Int32)
Indique si l’expression régulière spécifiée dans le Regex constructeur trouve une correspondance dans la chaîne d’entrée spécifiée, en commençant à la position de départ spécifiée dans la chaîne.
public:
bool IsMatch(System::String ^ input, int startat);
public bool IsMatch(string input, int startat);
member this.IsMatch : string * int -> bool
Public Function IsMatch (input As String, startat As Integer) As Boolean
Paramètres
- input
- String
Chaîne à rechercher une correspondance.
- startat
- Int32
Position de caractère à laquelle démarrer la recherche.
Retours
true si l’expression régulière trouve une correspondance ; sinon, false.
Exceptions
input a la valeur null.
startat est inférieur à zéro ou supérieur à la longueur de input.
Un délai d’attente s’est produit. Pour plus d’informations sur les délais d’attente, consultez la section Remarques.
Exemples
L’exemple suivant illustre l’utilisation de la IsMatch(String, Int32) méthode pour déterminer si une chaîne est un numéro de partie valide. Il recherche un numéro de partie qui suit un signe deux-points (:) caractère dans une chaîne. La IndexOf(Char) méthode est utilisée pour déterminer la position du caractère deux-points, qui est ensuite passée à la IsMatch(String, Int32) méthode. L’expression régulière suppose que le numéro de partie a un format spécifique qui se compose de trois jeux de caractères séparés par des traits d’union. Le premier jeu, qui contient quatre caractères, doit se composer d’un caractère alphanumérique suivi de deux caractères numériques suivis d’un caractère alphanumérique. Le deuxième jeu, qui se compose de trois caractères, doit être numérique. Le troisième jeu, composé de quatre caractères, doit avoir trois caractères numériques suivis d’un caractère alphanumérique.
string[] partNumbers = [ "Part Number: 1298-673-4192", "Part No: A08Z-931-468A",
"_A90-123-129X", "123K-000-1230",
"SKU: 0919-2893-1256" ];
Regex rgx = MyRegex();
foreach (string partNumber in partNumbers)
{
int start = partNumber.IndexOf(':');
if (start >= 0)
{
Console.WriteLine($"{partNumber} {(rgx.IsMatch(partNumber, start) ? "is" : "is not")} a valid part number.");
}
else
{
Console.WriteLine("Cannot find starting position in {0}.", partNumber);
}
}
// The example displays the following output:
// Part Number: 1298-673-4192 is a valid part number.
// Part No: A08Z-931-468A is a valid part number.
// Cannot find starting position in _A90-123-129X.
// Cannot find starting position in 123K-000-1230.
// SKU: 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim partNumbers() As String = { "Part Number: 1298-673-4192", "Part No: A08Z-931-468A", _
"_A90-123-129X", "123K-000-1230", _
"SKU: 0919-2893-1256" }
Dim rgx As New Regex("[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$")
For Each partNumber As String In partNumbers
Dim start As Integer = partNumber.IndexOf(":"c)
If start >= 0 Then
Console.WriteLine("{0} {1} a valid part number.", _
partNumber, _
IIF(rgx.IsMatch(partNumber, start), "is", "is not"))
Else
Console.WriteLine("Cannot find starting position in {0}.", partNumber)
End If
Next
End Sub
End Module
' The example displays the following output:
' Part Number: 1298-673-4192 is a valid part number.
' Part No: A08Z-931-468A is a valid part number.
' Cannot find starting position in _A90-123-129X.
' Cannot find starting position in 123K-000-1230.
' SKU: 0919-2893-1256 is not a valid part number.
Le modèle d'expression régulière est le suivant :
[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$
Le tableau suivant montre comment le modèle d'expression régulière est interprété.
| Modèle | Description |
|---|---|
[a-zA-Z0-9] |
Faire correspondre un caractère alphabétique unique (aà travers ou A à zZ) ou caractère numérique. |
\d{2} |
Mettre en correspondance deux caractères numériques. |
[a-zA-Z0-9] |
Faire correspondre un caractère alphabétique unique (aà travers ou A à zZ) ou caractère numérique. |
- |
Mettre en correspondance un trait d'union. |
\d{3} |
Mettre en correspondance exactement trois caractères numériques. |
(-\d{3}){2} |
Recherchez un trait d’union suivi de trois caractères numériques et faites correspondre deux occurrences de ce modèle. |
[a-zA-Z0-9] |
Faire correspondre un caractère alphabétique unique (aà travers ou A à zZ) ou caractère numérique. |
$ |
Terminez la correspondance à la fin de la ligne. |
Remarques
La IsMatch méthode est généralement utilisée pour valider une chaîne ou pour s’assurer qu’une chaîne est conforme à un modèle particulier sans récupérer cette chaîne pour une manipulation ultérieure. Si vous souhaitez déterminer si une ou plusieurs chaînes correspondent à un modèle d’expression régulière, puis récupérez-les pour une manipulation ultérieure, appelez la ou Matches la Match méthode.
Pour plus d’informations sur startat, consultez la section Remarques de Match(String, Int32).
L’exception RegexMatchTimeoutException est levée si l’heure d’exécution de l’opération correspondante dépasse l’intervalle de délai d’attente spécifié par le Regex.Regex(String, RegexOptions, TimeSpan) constructeur. Si vous ne définissez pas d’intervalle de délai d’attente lorsque vous appelez le constructeur, l’exception est levée si l’opération dépasse toute valeur de délai d’attente établie pour le domaine d’application dans lequel l’objet Regex est créé. Si aucun délai d’attente n’est défini dans l’appel du constructeur Regex ou dans les propriétés du domaine d’application, ou si la valeur du délai d’attente est Regex.InfiniteMatchTimeout, aucune exception n’est levée.
Voir aussi
S’applique à
IsMatch(String, String)
Indique si l’expression régulière spécifiée trouve une correspondance dans la chaîne d’entrée spécifiée.
public:
static bool IsMatch(System::String ^ input, System::String ^ pattern);
public static bool IsMatch(string input, string pattern);
static member IsMatch : string * string -> bool
Public Shared Function IsMatch (input As String, pattern As String) As Boolean
Paramètres
- input
- String
Chaîne à rechercher une correspondance.
- pattern
- String
Modèle d’expression régulière à mettre en correspondance.
Retours
true si l’expression régulière trouve une correspondance ; sinon, false.
Exceptions
Une erreur d’analyse d’expression régulière s’est produite.
input ou pattern est null.
Un délai d’attente s’est produit. Pour plus d’informations sur les délais d’attente, consultez la section Remarques.
Exemples
L’exemple suivant illustre l’utilisation de la IsMatch(String, String) méthode pour déterminer si une chaîne est un numéro de partie valide. L’expression régulière suppose que le numéro de partie a un format spécifique qui se compose de trois jeux de caractères séparés par des traits d’union. Le premier jeu, qui contient quatre caractères, doit se composer d’un caractère alphanumérique suivi de deux caractères numériques suivis d’un caractère alphanumérique. Le deuxième jeu, qui se compose de trois caractères, doit être numérique. Le troisième jeu, composé de quatre caractères, doit avoir trois caractères numériques suivis d’un caractère alphanumérique.
string[] partNumbers = [ "1298-673-4192", "A08Z-931-468A",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" ];
string pattern = @"^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$";
foreach (string partNumber in partNumbers)
Console.WriteLine($"{partNumber} {(Regex.IsMatch(partNumber, pattern) ? "is" : "is not")} " +
$"a valid part number.");
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468A is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468A", _
"_A90-123-129X", "12345-KKA-1230", _
"0919-2893-1256" }
Dim pattern As String = "^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$"
For Each partNumber As String In partNumbers
Console.WriteLine("{0} {1} a valid part number.", _
partNumber, _
IIF(Regex.IsMatch(partNumber, pattern), "is", "is not"))
Next
End Sub
End Module
' The example displays the following output:
' 1298-673-4192 is a valid part number.
' A08Z-931-468A is a valid part number.
' _A90-123-129X is not a valid part number.
' 12345-KKA-1230 is not a valid part number.
' 0919-2893-1256 is not a valid part number.
Le modèle d'expression régulière est le suivant :
^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$
Le tableau suivant montre comment le modèle d'expression régulière est interprété.
| Modèle | Description |
|---|---|
^ |
Commencez la correspondance au début de la ligne. |
[a-zA-Z0-9] |
Faire correspondre un caractère alphabétique unique (aà travers ou A à zZ) ou caractère numérique. |
\d{2} |
Mettre en correspondance deux caractères numériques. |
[a-zA-Z0-9] |
Faire correspondre un caractère alphabétique unique (aà travers ou A à zZ) ou caractère numérique. |
- |
Mettre en correspondance un trait d'union. |
\d{3} |
Mettre en correspondance exactement trois caractères numériques. |
(-\d{3}){2} |
Recherchez un trait d’union suivi de trois caractères numériques et faites correspondre deux occurrences de ce modèle. |
[a-zA-Z0-9] |
Faire correspondre un caractère alphabétique unique (aà travers ou A à zZ) ou caractère numérique. |
$ |
Terminez la correspondance à la fin de la ligne. |
Remarques
La IsMatch méthode est généralement utilisée pour valider une chaîne ou pour s’assurer qu’une chaîne est conforme à un modèle particulier sans récupérer cette chaîne pour une manipulation ultérieure. Si vous souhaitez déterminer si une ou plusieurs chaînes correspondent à un modèle d’expression régulière, puis récupérez-les pour une manipulation ultérieure, appelez la ou Matches la Match méthode.
La méthode statique IsMatch(String, String) équivaut à construire un Regex objet avec le modèle d’expression régulière spécifié et pattern à appeler la IsMatch(String) méthode d’instance. Ce modèle d’expression régulière est mis en cache pour une récupération rapide par le moteur d’expression régulière.
Le pattern paramètre se compose d’éléments de langage d’expression régulière qui décrivent symboliquement la chaîne à mettre en correspondance. Pour plus d’informations sur les expressions régulières, consultez .NET Regular Expressions and Regular Expression Language - Quick Reference.
L’exception RegexMatchTimeoutException est levée si l’heure d’exécution de l’opération correspondante dépasse l’intervalle de délai d’attente spécifié pour le domaine d’application dans lequel la méthode est appelée. Si aucun délai d’attente n’est défini dans les propriétés du domaine d’application ou si la valeur de délai d’attente est , aucune exception n’est Regex.InfiniteMatchTimeoutlevée.
Notes pour les appelants
Cette méthode expire après un intervalle égal à la valeur de délai d’attente par défaut du domaine d’application dans lequel la méthode est appelée. Si une valeur de délai d’attente n’a pas été définie pour le domaine d’application, la valeur InfiniteMatchTimeout, qui empêche la méthode de expirer, est utilisée. La méthode statique recommandée pour vérifier qu’une correspondance de modèle est IsMatch(String, String, RegexOptions, TimeSpan), ce qui vous permet de définir l’intervalle de délai d’attente.
Voir aussi
S’applique à
IsMatch(String, String, RegexOptions)
Indique si l’expression régulière spécifiée trouve une correspondance dans la chaîne d’entrée spécifiée, à l’aide des options de correspondance spécifiées.
public:
static bool IsMatch(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static bool IsMatch(string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member IsMatch : string * string * System.Text.RegularExpressions.RegexOptions -> bool
Public Shared Function IsMatch (input As String, pattern As String, options As RegexOptions) As Boolean
Paramètres
- input
- String
Chaîne à rechercher une correspondance.
- pattern
- String
Modèle d’expression régulière à mettre en correspondance.
- options
- RegexOptions
Combinaison de bits des valeurs d’énumération qui fournissent des options de correspondance.
Retours
true si l’expression régulière trouve une correspondance ; sinon, false.
Exceptions
Une erreur d’analyse d’expression régulière s’est produite.
input ou pattern est null.
options n’est pas une valeur valide RegexOptions .
Un délai d’attente s’est produit. Pour plus d’informations sur les délais d’attente, consultez la section Remarques.
Exemples
L’exemple suivant illustre l’utilisation de la IsMatch(String, String) méthode pour déterminer si une chaîne est un numéro de partie valide. L’expression régulière suppose que le numéro de partie a un format spécifique qui se compose de trois jeux de caractères séparés par des traits d’union. Le premier jeu, qui contient quatre caractères, doit se composer d’un caractère alphanumérique suivi de deux caractères numériques suivis d’un caractère alphanumérique. Le deuxième jeu, qui se compose de trois caractères, doit être numérique. Le troisième jeu, composé de quatre caractères, doit avoir trois caractères numériques suivis d’un caractère alphanumérique.
string[] partNumbers = [ "1298-673-4192", "A08Z-931-468a",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" ];
string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
foreach (string partNumber in partNumbers)
Console.WriteLine("{0} {1} a valid part number.",
partNumber,
Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase) ? "is" : "is not");
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468a is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468a", _
"_A90-123-129X", "12345-KKA-1230", _
"0919-2893-1256" }
Dim pattern As String = "^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$"
For Each partNumber As String In partNumbers
Console.WriteLine("{0} {1} a valid part number.", _
partNumber, _
IIF(Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase), _
"is", "is not"))
Next
End Sub
End Module
' The example displays the following output:
' 1298-673-4192 is a valid part number.
' A08Z-931-468a is a valid part number.
' _A90-123-129X is not a valid part number.
' 12345-KKA-1230 is not a valid part number.
' 0919-2893-1256 is not a valid part number.
Le modèle d'expression régulière est le suivant :
^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$
Le tableau suivant montre comment le modèle d'expression régulière est interprété.
| Modèle | Description |
|---|---|
^ |
Commencer la correspondance au début de la chaîne. |
[A-Z0-9] |
Mettre en correspondance n’importe quel caractère alphabétique unique à partir de A ou Zn’importe quel caractère numérique. |
\d{2} |
Mettre en correspondance deux caractères numériques. |
[A-Z0-9] |
Mettre en correspondance n’importe quel caractère alphabétique unique à partir de A ou Zn’importe quel caractère numérique. |
- |
Mettre en correspondance un trait d'union. |
\d{3} |
Mettre en correspondance exactement trois caractères numériques. |
(-\d{3}){2} |
Recherchez un trait d’union suivi de trois caractères numériques et faites correspondre deux occurrences de ce modèle.. |
[A-Z0-9] |
Mettre en correspondance n’importe quel caractère alphabétique unique à partir de A ou Zn’importe quel caractère numérique. |
$ |
Termine la correspondance à la fin de la chaîne. |
L’appel de la IsMatch(String, String, RegexOptions) méthode à l’aide RegexOptions.IgnoreCase du jeu de options paramètres équivaut à définir l’expression régulière suivante :
[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]
Pour une comparaison, consultez l’exemple de la IsMatch(String, String) méthode.
Remarques
La IsMatch méthode est généralement utilisée pour valider une chaîne ou pour s’assurer qu’une chaîne est conforme à un modèle particulier sans récupérer cette chaîne pour une manipulation ultérieure. Si vous souhaitez déterminer si une ou plusieurs chaînes correspondent à un modèle d’expression régulière, puis récupérez-les pour une manipulation ultérieure, appelez la ou Matches la Match méthode.
La méthode statique IsMatch(String, String, RegexOptions) équivaut à construire un Regex objet avec le modèle d’expression régulière spécifié par pattern et les options d’expression régulière spécifiées par options et en appelant la IsMatch(String) méthode d’instance. Ce modèle d’expression régulière est mis en cache pour une récupération rapide par le moteur d’expression régulière.
Le pattern paramètre se compose d’éléments de langage d’expression régulière qui décrivent symboliquement la chaîne à mettre en correspondance. Pour plus d’informations sur les expressions régulières, consultez .NET Regular Expressions and Regular Expression Language - Quick Reference.
L’exception RegexMatchTimeoutException est levée si l’heure d’exécution de l’opération correspondante dépasse l’intervalle de délai d’attente spécifié pour le domaine d’application dans lequel la méthode est appelée. Si aucun délai d’attente n’est défini dans les propriétés du domaine d’application ou si la valeur de délai d’attente est , aucune exception n’est Regex.InfiniteMatchTimeoutlevée.
Notes pour les appelants
Cette méthode expire après un intervalle égal à la valeur de délai d’attente par défaut du domaine d’application dans lequel elle est appelée. Si une valeur de délai d’attente n’a pas été définie pour le domaine d’application, la valeur InfiniteMatchTimeout, qui empêche la méthode de expirer, est utilisée. La méthode statique recommandée pour vérifier qu’une correspondance de modèle est IsMatch(String, String, RegexOptions, TimeSpan), ce qui vous permet de définir l’intervalle de délai d’attente.
Voir aussi
S’applique à
IsMatch(String, String, RegexOptions, TimeSpan)
Indique si l’expression régulière spécifiée trouve une correspondance dans la chaîne d’entrée spécifiée, à l’aide des options de correspondance et de l’intervalle de délai d’attente spécifiés.
public:
static bool IsMatch(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static bool IsMatch(string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member IsMatch : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> bool
Public Shared Function IsMatch (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Boolean
Paramètres
- input
- String
Chaîne à rechercher une correspondance.
- pattern
- String
Modèle d’expression régulière à mettre en correspondance.
- options
- RegexOptions
Combinaison de bits des valeurs d’énumération qui fournissent des options de correspondance.
- matchTimeout
- TimeSpan
Intervalle de délai d’attente, ou InfiniteMatchTimeout pour indiquer que la méthode ne doit pas expirer.
Retours
true si l’expression régulière trouve une correspondance ; sinon, false.
Exceptions
Une erreur d’analyse d’expression régulière s’est produite.
input ou pattern est null.
options n’est pas une valeur valide RegexOptions .
-ou-
matchTimeout est négatif, zéro ou supérieur à environ 24 jours.
Un délai d’attente s’est produit.
Exemples
L’exemple suivant illustre l’utilisation de la IsMatch(String, String, RegexOptions, TimeSpan) méthode pour déterminer si une chaîne est un numéro de partie valide. L’expression régulière suppose que le numéro de partie a un format spécifique qui se compose de trois jeux de caractères séparés par des traits d’union. Le premier jeu, qui contient quatre caractères, doit se composer d’un caractère alphanumérique suivi de deux caractères numériques suivis d’un caractère alphanumérique. Le deuxième jeu, qui se compose de trois caractères, doit être numérique. Le troisième jeu, composé de quatre caractères, doit avoir trois caractères numériques suivis d’un caractère alphanumérique. La mise en correspondance du modèle d’expression régulière doit impliquer une recherche minimale dans la chaîne d’entrée, de sorte que la méthode définit un intervalle de délai d’attente de 500 millisecondes.
string[] partNumbers = [ "1298-673-4192", "A08Z-931-468a",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" ];
string pattern = @"^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$";
foreach (string partNumber in partNumbers)
try
{
bool isMatch = Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase, TimeSpan.FromMilliseconds(500));
Console.WriteLine($"{partNumber} {(isMatch ? "is" : "is not")} a valid part number.");
}
catch (RegexMatchTimeoutException e)
{
Console.WriteLine($"Timeout after {e.MatchTimeout} seconds matching {e.Input}.");
}
// The example displays the following output:
// 1298-673-4192 is a valid part number.
// A08Z-931-468a is a valid part number.
// _A90-123-129X is not a valid part number.
// 12345-KKA-1230 is not a valid part number.
// 0919-2893-1256 is not a valid part number.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim partNumbers() As String = { "1298-673-4192", "A08Z-931-468a",
"_A90-123-129X", "12345-KKA-1230",
"0919-2893-1256" }
Dim pattern As String = "^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$"
For Each partNumber As String In partNumbers
Try
Console.WriteLine("{0} {1} a valid part number.",
partNumber, _
IIF(Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase), _
"is", "is not"),
TimeSpan.FromMilliseconds(500))
Catch e As RegexMatchTimeoutException
Console.WriteLine("Timeout after {0} seconds matching {1}.",
e.MatchTimeout, e.Input)
End Try
Next
End Sub
End Module
' The example displays the following output:
' 1298-673-4192 is a valid part number.
' A08Z-931-468a is a valid part number.
' _A90-123-129X is not a valid part number.
' 12345-KKA-1230 is not a valid part number.
' 0919-2893-1256 is not a valid part number.
Le modèle d'expression régulière est le suivant :
^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$
Le tableau suivant montre comment le modèle d'expression régulière est interprété.
| Modèle | Description |
|---|---|
^ |
Commencer la correspondance au début de la chaîne. |
[A-Z0-9] |
Mettre en correspondance n’importe quel caractère alphabétique unique à partir de A ou Zn’importe quel caractère numérique. |
\d{2} |
Mettre en correspondance deux caractères numériques. |
[A-Z0-9] |
Mettre en correspondance n’importe quel caractère alphabétique unique à partir de A ou Zn’importe quel caractère numérique. |
- |
Mettre en correspondance un trait d'union. |
\d{3} |
Mettre en correspondance exactement trois caractères numériques. |
(-\d{3}){2} |
Recherchez un trait d’union suivi de trois caractères numériques et faites correspondre deux occurrences de ce modèle. |
[A-Z0-9] |
Mettre en correspondance n’importe quel caractère alphabétique unique à partir de A ou Zn’importe quel caractère numérique. |
$ |
Termine la correspondance à la fin de la chaîne. |
L’appel de la IsMatch(String, String, RegexOptions, TimeSpan) méthode à l’aide RegexOptions.IgnoreCase du jeu de options paramètres équivaut à définir l’expression régulière suivante :
[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]
Pour une comparaison, consultez l’exemple de la IsMatch(String, String) méthode.
Remarques
La IsMatch méthode est généralement utilisée pour valider une chaîne ou pour s’assurer qu’une chaîne est conforme à un modèle particulier sans récupérer cette chaîne pour une manipulation ultérieure. Si vous souhaitez déterminer si une ou plusieurs chaînes correspondent à un modèle d’expression régulière, puis récupérez-les pour une manipulation ultérieure, appelez la ou Matches la Match méthode.
La méthode statique IsMatch(String, String, RegexOptions, TimeSpan) équivaut à construire un Regex objet avec le modèle d’expression régulière spécifié par pattern et les options d’expression régulière spécifiées par options et en appelant la IsMatch(String) méthode d’instance. Ce modèle d’expression régulière est mis en cache pour une récupération rapide par le moteur d’expression régulière.
Le pattern paramètre se compose d’éléments de langage d’expression régulière qui décrivent symboliquement la chaîne à mettre en correspondance. Pour plus d’informations sur les expressions régulières, consultez .NET Regular Expressions and Regular Expression Language - Quick Reference.
Le matchTimeout paramètre spécifie la durée pendant laquelle une méthode de correspondance de modèle doit essayer de trouver une correspondance avant qu’elle expire. La définition d’un intervalle de délai d’attente empêche les expressions régulières qui s’appuient sur un retour arrière excessif d’apparaître pour cesser de répondre lorsqu’elles traitent les entrées qui contiennent des correspondances proches. Pour plus d’informations, consultez Les meilleures pratiques pour les expressions régulières et le retour arrière. Si aucune correspondance n’est trouvée dans cet intervalle de temps, la méthode lève une RegexMatchTimeoutException exception.
matchTimeout remplace toute valeur de délai d’attente par défaut définie pour le domaine d’application dans lequel la méthode s’exécute.
Notes pour les appelants
Nous vous recommandons de définir le matchTimeout paramètre sur une valeur appropriée, par exemple deux secondes. Si vous désactivez les délais d’attente en spécifiant InfiniteMatchTimeout, le moteur d’expression régulière offre des performances légèrement meilleures. Toutefois, vous devez désactiver les délais d’attente uniquement dans les conditions suivantes :
Lorsque l’entrée traitée par une expression régulière est dérivée d’une source connue et approuvée ou se compose de texte statique. Cela exclut le texte qui a été entré dynamiquement par les utilisateurs.
Lorsque le modèle d’expression régulière a été soigneusement testé pour s’assurer qu’il gère efficacement les correspondances, les non-correspondances et les correspondances proches.
Lorsque le modèle d’expression régulière ne contient aucun élément de langage connu pour provoquer un retour arrière excessif lors du traitement d’une correspondance proche.