Regex.IsMatch Метод

Определение

Указывает на то, обнаруживает ли регулярное выражение соответствие во входной строке.Indicates whether the regular expression finds a match in the input string.

Перегрузки

IsMatch(String)

Указывает, обнаружено ли в указанной входной строке соответствие регулярному выражению, заданному в конструкторе Regex.Indicates whether the regular expression specified in the Regex constructor finds a match in a specified input string.

IsMatch(String, Int32)

Указывает, обнаружено ли в указанной входной строке соответствие (начинающееся с указанной позиции в этой строке) регулярному выражению, заданному в конструкторе Regex.Indicates whether the regular expression specified in the Regex constructor finds a match in the specified input string, beginning at the specified starting position in the string.

IsMatch(String, String)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению.Indicates whether the specified regular expression finds a match in the specified input string.

IsMatch(String, String, RegexOptions)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению, используя указанные параметры сопоставления.Indicates whether the specified regular expression finds a match in the specified input string, using the specified matching options.

IsMatch(String, String, RegexOptions, TimeSpan)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению, с помощью указанных параметров сопоставления и интервала времени ожидания.Indicates whether the specified regular expression finds a match in the specified input string, using the specified matching options and time-out interval.

IsMatch(String)

Указывает, обнаружено ли в указанной входной строке соответствие регулярному выражению, заданному в конструкторе Regex.Indicates whether the regular expression specified in the Regex constructor finds a match in a specified input string.

public:
 bool IsMatch(System::String ^ input);
public bool IsMatch (string input);
member this.IsMatch : string -> bool
Public Function IsMatch (input As String) As Boolean

Параметры

input
String

Строка для поиска соответствия.The string to search for a match.

Возвраты

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.true if the regular expression finds a match; otherwise, false.

Исключения

Свойство input имеет значение null.input is null.

Время ожидания истекло.A time-out occurred. Дополнительные сведения о времени ожидания см. в разделе "Примечания".For more information about time-outs, see the Remarks section.

Примеры

В следующем примере показано использование IsMatch(String) метода для определения, является ли строка допустимым номером части.The following example illustrates the use of the IsMatch(String) method to determine whether a string is a valid part number. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисами.The regular expression assumes that the part number has a specific format that consists of three sets of characters separated by hyphens. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следуют два цифровых символа, за которыми следует буквенно-цифровой символ.The first set, which contains four characters, must consist of an alphanumeric character followed by two numeric characters followed by an alphanumeric character. Второй набор, состоящий из трех символов, должен быть числовым.The second set, which consists of three characters, must be numeric. Третий набор, состоящий из четырех символов, должен содержать три цифровых символа, за которыми следует буквенно-цифровой символ.The third set, which consists of four characters, must have three numeric characters followed by an alphanumeric character.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      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("{0} {1} a valid part number.", 
                           partNumber, 
                           rgx.IsMatch(partNumber) ? "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 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.

Шаблон регулярного выражения выглядит следующим образом:The regular expression pattern is:

^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$  

В следующей таблице показано, как интерпретируется шаблон регулярного выражения.The following table shows how the regular expression pattern is interpreted.

ШаблонPattern ОписаниеDescription
^ Начало совпадения в начале строки.Begin the match at the beginning of the line.
[a-zA-Z0-9] Совпадение с одиночной буквойa ( z от A или Zдо) или цифровым символом.Match a single alphabetic character (a through z or A through Z) or numeric character.
\d{2} Совпадение с двумя числовыми символами.Match two numeric characters.
[a-zA-Z0-9] Совпадение с одиночной буквойa ( z от A или Zдо) или цифровым символом.Match a single alphabetic character (a through z or A through Z) or numeric character.
- Выделение дефиса.Match a hyphen.
\d{3} Совпадение ровно трех числовых символов.Match exactly three numeric characters.
(-\d{3}){2} Найдите дефис, за которым следуют три числовых символа, и сопоставьте два вхождения этого шаблона.Find a hyphen followed by three numeric characters, and match two occurrences of this pattern.
[a-zA-Z0-9] Совпадение с одиночной буквойa ( z от A или Zдо) или цифровым символом.Match a single alphabetic character (a through z or A through Z) or numeric character.
$ Конец совпадения в конце строки.End the match at the end of the line.

Комментарии

IsMatch Метод обычно используется для проверки строки или для обеспечения соответствия строки определенному шаблону без извлечения этой строки для последующей манипуляции.The IsMatch method is typically used to validate a string or to ensure that a string conforms to a particular pattern without retrieving that string for subsequent manipulation. Если необходимо определить, соответствует ли одна или несколько строк шаблону регулярного выражения, а затем извлечь их для последующей манипуляции Match , Matches вызовите метод или.If you want to determine whether one or more strings match a regular expression pattern and then retrieve them for subsequent manipulation, call the Match or Matches method.

Исключение возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, заданный Regex.Regex(String, RegexOptions, TimeSpan) конструктором. RegexMatchTimeoutExceptionThe RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. Если не задать интервал времени ожидания при вызове конструктора, исключение создается, если операция превышает любое значение времени ожидания, установленное для домена приложения, в котором Regex создан объект.If you do not set a time-out interval when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. Если время ожидания не определено в Regex вызове конструктора или в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

Дополнительно

IsMatch(String, Int32)

Указывает, обнаружено ли в указанной входной строке соответствие (начинающееся с указанной позиции в этой строке) регулярному выражению, заданному в конструкторе Regex.Indicates whether the regular expression specified in the Regex constructor finds a match in the specified input string, beginning at the specified starting position in the string.

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

Параметры

input
String

Строка для поиска соответствия.The string to search for a match.

startat
Int32

Расположение символа, с которого необходимо начать поиск.The character position at which to start the search.

Возвраты

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.true if the regular expression finds a match; otherwise, false.

Исключения

Свойство input имеет значение null.input is null.

Параметр startat имеет значение меньше нуля или больше длины input.startat is less than zero or greater than the length of input.

Время ожидания истекло.A time-out occurred. Дополнительные сведения о времени ожидания см. в разделе "Примечания".For more information about time-outs, see the Remarks section.

Примеры

В следующем примере показано использование IsMatch(String, Int32) метода для определения, является ли строка допустимым номером части.The following example illustrates the use of the IsMatch(String, Int32) method to determine whether a string is a valid part number. Он ищет номер части, следующий за двоеточием (:) символ в строке.It searches for a part number that follows a colon (:) character in a string. Метод используется для определения позиции символа двоеточия, который затем передается IsMatch(String, Int32) в метод. IndexOf(Char)The IndexOf(Char) method is used to determine the position of the colon character, which is then passed to the IsMatch(String, Int32) method. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисами.The regular expression assumes that the part number has a specific format that consists of three sets of characters separated by hyphens. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следуют два цифровых символа, за которыми следует буквенно-цифровой символ.The first set, which contains four characters, must consist of an alphanumeric character followed by two numeric characters followed by an alphanumeric character. Второй набор, состоящий из трех символов, должен быть числовым.The second set, which consists of three characters, must be numeric. Третий набор, состоящий из четырех символов, должен содержать три цифровых символа, за которыми следует буквенно-цифровой символ.The third set, which consists of four characters, must have three numeric characters followed by an alphanumeric character.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string[] partNumbers= { "Part Number: 1298-673-4192", "Part No: A08Z-931-468A", 
                              "_A90-123-129X", "123K-000-1230", 
                              "SKU: 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)
      {
         int start = partNumber.IndexOf(':');
         if (start >= 0)
         {
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, 
                              rgx.IsMatch(partNumber, start) ? "is" : "is not");
         }
         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.

Шаблон регулярного выражения выглядит следующим образом:The regular expression pattern is:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$  

В следующей таблице показано, как интерпретируется шаблон регулярного выражения.The following table shows how the regular expression pattern is interpreted.

ШаблонPattern ОписаниеDescription
[a-zA-Z0-9] Совпадение с одиночной буквойa ( z от A или Zдо) или цифровым символом.Match a single alphabetic character (a through z or A through Z) or numeric character.
\d{2} Совпадение с двумя числовыми символами.Match two numeric characters.
[a-zA-Z0-9] Совпадение с одиночной буквойa ( z от A или Zдо) или цифровым символом.Match a single alphabetic character (a through z or A through Z) or numeric character.
- Выделение дефиса.Match a hyphen.
\d{3} Совпадение ровно трех числовых символов.Match exactly three numeric characters.
(-\d{3}){2} Найдите дефис, за которым следуют три числовых символа, и сопоставьте два вхождения этого шаблона.Find a hyphen followed by three numeric characters, and match two occurrences of this pattern.
[a-zA-Z0-9] Совпадение с одиночной буквойa ( z от A или Zдо) или цифровым символом.Match a single alphabetic character (a through z or A through Z) or numeric character.
$ Конец совпадения в конце строки.End the match at the end of the line.

Комментарии

IsMatch Метод обычно используется для проверки строки или для обеспечения соответствия строки определенному шаблону без извлечения этой строки для последующей манипуляции.The IsMatch method is typically used to validate a string or to ensure that a string conforms to a particular pattern without retrieving that string for subsequent manipulation. Если необходимо определить, соответствует ли одна или несколько строк шаблону регулярного выражения, а затем извлечь их для последующей манипуляции Match , Matches вызовите метод или.If you want to determine whether one or more strings match a regular expression pattern and then retrieve them for subsequent manipulation, call the Match or Matches method.

Исключение возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, заданный Regex.Regex(String, RegexOptions, TimeSpan) конструктором. RegexMatchTimeoutExceptionThe RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. Если не задать интервал времени ожидания при вызове конструктора, исключение создается, если операция превышает любое значение времени ожидания, установленное для домена приложения, в котором Regex создан объект.If you do not set a time-out interval when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. Если время ожидания не определено в Regex вызове конструктора или в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

Дополнительно

IsMatch(String, String)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению.Indicates whether the specified regular expression finds a match in the specified input string.

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

Параметры

input
String

Строка для поиска соответствия.The string to search for a match.

pattern
String

Шаблон регулярного выражения для сопоставления.The regular expression pattern to match.

Возвраты

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.true if the regular expression finds a match; otherwise, false.

Исключения

Произошла ошибка анализа регулярного выражения.A regular expression parsing error occurred.

Параметрinput или pattern имеет значение null.input or pattern is null.

Время ожидания истекло.A time-out occurred. Дополнительные сведения о времени ожидания см. в разделе "Примечания".For more information about time-outs, see the Remarks section.

Примеры

В следующем примере показано использование IsMatch(String, String) метода для определения, является ли строка допустимым номером части.The following example illustrates the use of the IsMatch(String, String) method to determine whether a string is a valid part number. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисами.The regular expression assumes that the part number has a specific format that consists of three sets of characters separated by hyphens. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следуют два цифровых символа, за которыми следует буквенно-цифровой символ.The first set, which contains four characters, must consist of an alphanumeric character followed by two numeric characters followed by an alphanumeric character. Второй набор, состоящий из трех символов, должен быть числовым.The second set, which consists of three characters, must be numeric. Третий набор, состоящий из четырех символов, должен содержать три цифровых символа, за которыми следует буквенно-цифровой символ.The third set, which consists of four characters, must have three numeric characters followed by an alphanumeric character.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      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("{0} {1} a valid part number.", 
                           partNumber, 
                           Regex.IsMatch(partNumber, pattern) ? "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-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.

Шаблон регулярного выражения выглядит следующим образом:The regular expression pattern is:

^[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]$  

В следующей таблице показано, как интерпретируется шаблон регулярного выражения.The following table shows how the regular expression pattern is interpreted.

ШаблонPattern ОписаниеDescription
^ Начало совпадения в начале строки.Begin the match at the beginning of the line.
[a-zA-Z0-9] Совпадение с одиночной буквойa ( z от A или Zдо) или цифровым символом.Match a single alphabetic character (a through z or A through Z) or numeric character.
\d{2} Совпадение с двумя числовыми символами.Match two numeric characters.
[a-zA-Z0-9] Совпадение с одиночной буквойa ( z от A или Zдо) или цифровым символом.Match a single alphabetic character (a through z or A through Z) or numeric character.
- Выделение дефиса.Match a hyphen.
\d{3} Совпадение ровно трех числовых символов.Match exactly three numeric characters.
(-\d{3}){2} Найдите дефис, за которым следуют три числовых символа, и сопоставьте два вхождения этого шаблона.Find a hyphen followed by three numeric characters, and match two occurrences of this pattern.
[a-zA-Z0-9] Совпадение с одиночной буквойa ( z от A или Zдо) или цифровым символом.Match a single alphabetic character (a through z or A through Z) or numeric character.
$ Конец совпадения в конце строки.End the match at the end of the line.

Комментарии

IsMatch Метод обычно используется для проверки строки или для обеспечения соответствия строки определенному шаблону без извлечения этой строки для последующей манипуляции.The IsMatch method is typically used to validate a string or to ensure that a string conforms to a particular pattern without retrieving that string for subsequent manipulation. Если необходимо определить, соответствует ли одна или несколько строк шаблону регулярного выражения, а затем извлечь их для последующей манипуляции Match , Matches вызовите метод или.If you want to determine whether one or more strings match a regular expression pattern and then retrieve them for subsequent manipulation, call the Match or Matches method.

Статический IsMatch(String, String) метод эквивалентен созданию Regex объекта с шаблоном регулярного выражения, IsMatch(String) заданным методом pattern , и вызовом метода экземпляра.The static IsMatch(String, String) method is equivalent to constructing a Regex object with the regular expression pattern specified by pattern and calling the IsMatch(String) instance method. Этот шаблон регулярного выражения кэшируется для быстрого извлечения обработчиком регулярных выражений.This regular expression pattern is cached for rapid retrieval by the regular expression engine.

pattern Параметр состоит из элементов языка регулярных выражений, которые в символьном виде описывают строку для сопоставления.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Дополнительные сведения о регулярных выражениях см. в разделе .NET Framework регулярные выражения и Язык регулярных выражений — краткий справочник.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

RegexMatchTimeoutException Исключение возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, указанный для домена приложения, в котором вызывается метод.The RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified for the application domain in which the method is called. Если время ожидания не определено в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.If no time-out is defined in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

Примечания для тех, кто вызывает этот метод

Время ожидания этого метода истекает через интервал, равный значению времени ожидания по умолчанию для домена приложения, в котором вызывается метод.This method times out after an interval that is equal to the default time-out value of the application domain in which the method is called. Если для домена приложения не определено значение времени ожидания, то используется значение InfiniteMatchTimeout, запрещающее истечение времени ожидания метода.If a time-out value has not been defined for the application domain, the value InfiniteMatchTimeout, which prevents the method from timing out, is used. Для проверки соответствия IsMatch(String, String, RegexOptions, TimeSpan)шаблону рекомендуется использовать статический метод, который позволяет установить интервал времени ожидания.The recommended static method for verifying a pattern match is IsMatch(String, String, RegexOptions, TimeSpan), which lets you set the time-out interval.

Дополнительно

IsMatch(String, String, RegexOptions)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению, используя указанные параметры сопоставления.Indicates whether the specified regular expression finds a match in the specified input string, using the specified matching options.

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

Параметры

input
String

Строка для поиска соответствия.The string to search for a match.

pattern
String

Шаблон регулярного выражения для сопоставления.The regular expression pattern to match.

options
RegexOptions

Побитовая комбинация значений перечисления, предоставляющая параметры для сопоставления.A bitwise combination of the enumeration values that provide options for matching.

Возвраты

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.true if the regular expression finds a match; otherwise, false.

Исключения

Произошла ошибка анализа регулярного выражения.A regular expression parsing error occurred.

Значение параметра input или patternnull.input or pattern is null.

options не является допустимым значением RegexOptions.options is not a valid RegexOptions value.

Время ожидания истекло.A time-out occurred. Дополнительные сведения о времени ожидания см. в разделе "Примечания".For more information about time-outs, see the Remarks section.

Примеры

В следующем примере показано использование IsMatch(String, String) метода для определения, является ли строка допустимым номером части.The following example illustrates the use of the IsMatch(String, String) method to determine whether a string is a valid part number. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисами.The regular expression assumes that the part number has a specific format that consists of three sets of characters separated by hyphens. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следуют два цифровых символа, за которыми следует буквенно-цифровой символ.The first set, which contains four characters, must consist of an alphanumeric character followed by two numeric characters followed by an alphanumeric character. Второй набор, состоящий из трех символов, должен быть числовым.The second set, which consists of three characters, must be numeric. Третий набор, состоящий из четырех символов, должен содержать три цифровых символа, за которыми следует буквенно-цифровой символ.The third set, which consists of four characters, must have three numeric characters followed by an alphanumeric character.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      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.

Шаблон регулярного выражения выглядит следующим образом:The regular expression pattern is:

^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$  

В следующей таблице показано, как интерпретируется шаблон регулярного выражения.The following table shows how the regular expression pattern is interpreted.

ШаблонPattern ОписаниеDescription
^ Начало совпадения в начале строки.Begin the match at the beginning of the string.
[A-Z0-9] Совпадение с любым одиночным буквенным Zсимволом от A до или любого числового символа.Match any single alphabetic character from A through Z, or any numeric character.
\d{2} Совпадение с двумя числовыми символами.Match two numeric characters.
[A-Z0-9] Совпадение с любым одиночным буквенным Zсимволом от A до или любого числового символа.Match any single alphabetic character from A through Z, or any numeric character.
- Выделение дефиса.Match a hyphen.
\d{3} Совпадение ровно трех числовых символов.Match exactly three numeric characters.
(-\d{3}){2} Найдите дефис, за которым следуют три числовых символа, и сопоставьте два вхождения этого шаблона.Find a hyphen followed by three numeric characters, and match two occurrences of this pattern..
[A-Z0-9] Совпадение с любым одиночным буквенным Zсимволом от A до или любого числового символа.Match any single alphabetic character from A through Z, or any numeric character.
$ Совпадение должно заканчиваться в конце строки.End the match at the end of the string.

Вызов метода с параметром, имеющим значение RegexOptions.IgnoreCase , эквивалентен определению следующего регулярного выражения: options IsMatch(String, String, RegexOptions)Calling the IsMatch(String, String, RegexOptions) method with the options parameter set to RegexOptions.IgnoreCase is equivalent to defining the following regular expression:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]  

Для сравнения см. пример для IsMatch(String, String) метода.For comparison, see the example for the IsMatch(String, String) method.

Комментарии

IsMatch Метод обычно используется для проверки строки или для обеспечения соответствия строки определенному шаблону без извлечения этой строки для последующей манипуляции.The IsMatch method is typically used to validate a string or to ensure that a string conforms to a particular pattern without retrieving that string for subsequent manipulation. Если необходимо определить, соответствует ли одна или несколько строк шаблону регулярного выражения, а затем извлечь их для последующей манипуляции Match , Matches вызовите метод или.If you want to determine whether one or more strings match a regular expression pattern and then retrieve them for subsequent manipulation, call the Match or Matches method.

Статический IsMatch(String, String, RegexOptions) метод эквивалентен созданию Regex объекта с шаблоном регулярного выражения, заданным параметром pattern , и параметрами IsMatch(String) регулярного выражения, options заданными и вызывающими экземпляром. Method.The static IsMatch(String, String, RegexOptions) method is equivalent to constructing a Regex object with the regular expression pattern specified by pattern and the regular expression options specified by options and calling the IsMatch(String) instance method. Этот шаблон регулярного выражения кэшируется для быстрого извлечения обработчиком регулярных выражений.This regular expression pattern is cached for rapid retrieval by the regular expression engine.

pattern Параметр состоит из элементов языка регулярных выражений, которые в символьном виде описывают строку для сопоставления.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Дополнительные сведения о регулярных выражениях см. в разделе .NET Framework регулярные выражения и Язык регулярных выражений — краткий справочник.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

RegexMatchTimeoutException Исключение возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, указанный для домена приложения, в котором вызывается метод.The RegexMatchTimeoutException exception is thrown if the execution time of the matching operation exceeds the time-out interval specified for the application domain in which the method is called. Если время ожидания не определено в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.If no time-out is defined in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

Примечания для тех, кто вызывает этот метод

Время ожидания этого метода истекает после интервала, который равен значению времени ожидания по умолчанию для домена приложения, в котором он вызывается.This method times out after an interval that is equal to the default time-out value of the application domain in which it is called. Если для домена приложения не определено значение времени ожидания, то используется значение InfiniteMatchTimeout, запрещающее истечение времени ожидания метода.If a time-out value has not been defined for the application domain, the value InfiniteMatchTimeout, which prevents the method from timing out, is used. Для проверки соответствия IsMatch(String, String, RegexOptions, TimeSpan)шаблону рекомендуется использовать статический метод, который позволяет установить интервал времени ожидания.The recommended static method for verifying a pattern match is IsMatch(String, String, RegexOptions, TimeSpan), which lets you set the time-out interval.

Дополнительно

IsMatch(String, String, RegexOptions, TimeSpan)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению, с помощью указанных параметров сопоставления и интервала времени ожидания.Indicates whether the specified regular expression finds a match in the specified input string, using the specified matching options and time-out interval.

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

Параметры

input
String

Строка для поиска соответствия.The string to search for a match.

pattern
String

Шаблон регулярного выражения для сопоставления.The regular expression pattern to match.

options
RegexOptions

Побитовая комбинация значений перечисления, предоставляющая параметры для сопоставления.A bitwise combination of the enumeration values that provide options for matching.

matchTimeout
TimeSpan

Интервал времени ожидания или InfiniteMatchTimeout, чтобы указать, что метод не должен превышать время ожидания.A time-out interval, or InfiniteMatchTimeout to indicate that the method should not time out.

Возвраты

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.true if the regular expression finds a match; otherwise, false.

Исключения

Произошла ошибка анализа регулярного выражения.A regular expression parsing error occurred.

Значение параметра input или patternnull.input or pattern is null.

options не является допустимым значением RegexOptions.options is not a valid RegexOptions value.

- или --or- Значение параметра matchTimeout отрицательное, равно нулю или больше, чем приблизительно 24 дня.matchTimeout is negative, zero, or greater than approximately 24 days.

Время ожидания истекло.A time-out occurred.

Примеры

В следующем примере показано использование IsMatch(String, String, RegexOptions, TimeSpan) метода для определения, является ли строка допустимым номером части.The following example illustrates the use of the IsMatch(String, String, RegexOptions, TimeSpan) method to determine whether a string is a valid part number. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисами.The regular expression assumes that the part number has a specific format that consists of three sets of characters separated by hyphens. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следуют два цифровых символа, за которыми следует буквенно-цифровой символ.The first set, which contains four characters, must consist of an alphanumeric character followed by two numeric characters followed by an alphanumeric character. Второй набор, состоящий из трех символов, должен быть числовым.The second set, which consists of three characters, must be numeric. Третий набор, состоящий из четырех символов, должен содержать три цифровых символа, за которыми следует буквенно-цифровой символ.The third set, which consists of four characters, must have three numeric characters followed by an alphanumeric character. Сопоставление шаблона регулярного выражения должно производиться с минимальным поиском во входной строке, поэтому метод устанавливает интервал времени ожидания 500 миллисекунд.Matching the regular expression pattern should involve minimal searching through the input string, so the method sets a time-out interval of 500 milliseconds.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      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 {
            Console.WriteLine("{0} {1} a valid part number.", 
                              partNumber, 
                              Regex.IsMatch(partNumber, pattern, RegexOptions.IgnoreCase) 
                                            ? "is" : "is not", TimeSpan.FromMilliseconds(500));
         }
         catch (RegexMatchTimeoutException e) {
            Console.WriteLine("Timeout after {0} seconds matching {1}.",
                              e.MatchTimeout, 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.

Шаблон регулярного выражения выглядит следующим образом:The regular expression pattern is:

^[A-Z0-9]\d{2}[A-Z0-9](-\d{3}){2}[A-Z0-9]$  

В следующей таблице показано, как интерпретируется шаблон регулярного выражения.The following table shows how the regular expression pattern is interpreted.

ШаблонPattern ОписаниеDescription
^ Начало совпадения в начале строки.Begin the match at the beginning of the string.
[A-Z0-9] Совпадение с любым одиночным буквенным Zсимволом от A до или любого числового символа.Match any single alphabetic character from A through Z, or any numeric character.
\d{2} Совпадение с двумя числовыми символами.Match two numeric characters.
[A-Z0-9] Совпадение с любым одиночным буквенным Zсимволом от A до или любого числового символа.Match any single alphabetic character from A through Z, or any numeric character.
- Выделение дефиса.Match a hyphen.
\d{3} Совпадение ровно трех числовых символов.Match exactly three numeric characters.
(-\d{3}){2} Найдите дефис, за которым следуют три числовых символа, и сопоставьте два вхождения этого шаблона.Find a hyphen followed by three numeric characters, and match two occurrences of this pattern.
[A-Z0-9] Совпадение с любым одиночным буквенным Zсимволом от A до или любого числового символа.Match any single alphabetic character from A through Z, or any numeric character.
$ Совпадение должно заканчиваться в конце строки.End the match at the end of the string.

Вызов метода с параметром, имеющим значение RegexOptions.IgnoreCase , эквивалентен определению следующего регулярного выражения: options IsMatch(String, String, RegexOptions, TimeSpan)Calling the IsMatch(String, String, RegexOptions, TimeSpan) method with the options parameter set to RegexOptions.IgnoreCase is equivalent to defining the following regular expression:

[a-zA-Z0-9]\d{2}[a-zA-Z0-9](-\d{3}){2}[A-Za-z0-9]  

Для сравнения см. пример для IsMatch(String, String) метода.For comparison, see the example for the IsMatch(String, String) method.

Комментарии

IsMatch Метод обычно используется для проверки строки или для обеспечения соответствия строки определенному шаблону без извлечения этой строки для последующей манипуляции.The IsMatch method is typically used to validate a string or to ensure that a string conforms to a particular pattern without retrieving that string for subsequent manipulation. Если необходимо определить, соответствует ли одна или несколько строк шаблону регулярного выражения, а затем извлечь их для последующей манипуляции Match , Matches вызовите метод или.If you want to determine whether one or more strings match a regular expression pattern and then retrieve them for subsequent manipulation, call the Match or Matches method.

Статический IsMatch(String, String, RegexOptions, TimeSpan) метод эквивалентен созданию Regex объекта с шаблоном регулярного выражения, заданным параметром pattern , и параметрами IsMatch(String) регулярного выражения, options заданными и вызывающими экземпляром. Method.The static IsMatch(String, String, RegexOptions, TimeSpan) method is equivalent to constructing a Regex object with the regular expression pattern specified by pattern and the regular expression options specified by options and calling the IsMatch(String) instance method. Этот шаблон регулярного выражения кэшируется для быстрого извлечения обработчиком регулярных выражений.This regular expression pattern is cached for rapid retrieval by the regular expression engine.

pattern Параметр состоит из элементов языка регулярных выражений, которые в символьном виде описывают строку для сопоставления.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. Дополнительные сведения о регулярных выражениях см. в разделе .NET Framework регулярные выражения и Язык регулярных выражений — краткий справочник.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

matchTimeout Параметр указывает, как долго метод сопоставления шаблонов должен пытаться найти соответствие до истечения времени ожидания. Установка интервала времени ожидания предотвращает зависание регулярных выражений, которые полагаются на избыточное выполнение поиска с возвратом, при обработке входных данных, содержащих близкие совпадения.The matchTimeout parameter specifies how long a pattern matching method should try to find a match before it times out. Setting a time-out interval prevents regular expressions that rely on excessive backtracking from appearing to stop responding when they process input that contains near matches. Дополнительные сведения см. в разделе рекомендации по использованию регулярных выражений и поискас возвратом.For more information, see Best Practices for Regular Expressions and Backtracking. Если в течение этого интервала времени совпадения не найдены, метод создает RegexMatchTimeoutException исключение.If no match is found in that time interval, the method throws a RegexMatchTimeoutException exception. matchTimeoutпереопределяет любое значение времени ожидания по умолчанию, определенное для домена приложения, в котором выполняется метод.matchTimeout overrides any default time-out value defined for the application domain in which the method executes.

Примечания для тех, кто вызывает этот метод

Рекомендуется присвоить matchTimeout параметру соответствующее значение, например две секунды.We recommend that you set the matchTimeout parameter to an appropriate value, such as two seconds. Если вы отключаете время ожидания, указав InfiniteMatchTimeout, механизм регулярных выражений обеспечивает немного более высокую производительность.If you disable time-outs by specifying InfiniteMatchTimeout, the regular expression engine offers slightly better performance. Однако время ожидания следует отключить только при следующих условиях.However, you should disable time-outs only under the following conditions: — Если входные данные, обрабатываемые регулярным выражением, являются производными от известного и надежного источника или состоят из статического текста.- When the input processed by a regular expression is derived from a known and trusted source or consists of static text. Это исключает текст, введенный пользователями динамически.This excludes text that has been dynamically input by users.

— При тщательном тестировании шаблона регулярного выражения для обеспечения эффективной обработки совпадений, несоответствий и близких соответствий.- When the regular expression pattern has been thoroughly tested to ensure that it efficiently handles matches, non-matches, and near matches.

— Если шаблон регулярного выражения не содержит элементов языка, которые вызывают избыточный поиск с возвратом при обработке близкого соответствия.- When the regular expression pattern contains no language elements that are known to cause excessive backtracking when processing a near match.

Дополнительно

Применяется к