Regex.IsMatch Метод

Определение

Указывает на то, обнаруживает ли регулярное выражение соответствие во входной строке.

Перегрузки

IsMatch(String, String, RegexOptions, TimeSpan)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению, с помощью указанных параметров сопоставления и интервала времени ожидания.

IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

Указывает, находит ли указанное регулярное выражение совпадение в указанном входном диапазоне, используя указанные параметры сопоставления и интервал времени ожидания.

IsMatch(String, String, RegexOptions)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению, используя указанные параметры сопоставления.

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Указывает, находит ли указанное регулярное выражение совпадение в указанном входном диапазоне с помощью указанных параметров сопоставления.

IsMatch(String, String)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению.

IsMatch(ReadOnlySpan<Char>, String)

Указывает, находит ли указанное регулярное выражение совпадение в указанном входном диапазоне.

IsMatch(ReadOnlySpan<Char>, Int32)

Указывает, находит ли регулярное выражение, указанное в конструкторе регулярных выражений, совпадение в указанном входном диапазоне.

IsMatch(String)

Указывает, обнаружено ли в указанной входной строке соответствие регулярному выражению, заданному в конструкторе Regex.

IsMatch(ReadOnlySpan<Char>)

Указывает, находит ли регулярное выражение, указанное в конструкторе регулярных выражений, совпадение в указанном входном диапазоне.

IsMatch(String, Int32)

Указывает, обнаружено ли в указанной входной строке соответствие (начинающееся с указанной позиции в этой строке) регулярному выражению, заданному в конструкторе Regex.

IsMatch(String, String, RegexOptions, TimeSpan)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению, с помощью указанных параметров сопоставления и интервала времени ожидания.

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

Строка для поиска соответствия.

pattern
String

Шаблон регулярного выражения для сопоставления.

options
RegexOptions

Побитовая комбинация значений перечисления, предоставляющая параметры для сопоставления.

matchTimeout
TimeSpan

Интервал времени ожидания или InfiniteMatchTimeout, чтобы указать, что метод не должен превышать время ожидания.

Возвращаемое значение

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.

Исключения

Произошла ошибка анализа регулярного выражения.

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

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

-или-

Значение параметра matchTimeout отрицательное, равно нулю или больше, чем приблизительно 24 дня.

Время ожидания истекло.

Примеры

В следующем примере показано использование метода , IsMatch(String, String, RegexOptions, TimeSpan) чтобы определить, является ли строка допустимым номером части. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисами. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следуют два числовых символа, за которыми следует буквенно-цифровой символ. Второй набор, состоящий из трех символов, должен быть числовым. Третий набор, состоящий из четырех символов, должен содержать три числовых символа, за которыми следует буквенно-цифровой символ. Сопоставление шаблона регулярного выражения должно включать минимальный поиск во входной строке, поэтому метод устанавливает интервал времени ожидания в 500 миллисекундах.

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.

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

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

В следующей таблице показано, как интерпретируется шаблон регулярного выражения.

Шаблон Описание
^ Начало совпадения в начале строки.
[A-Z0-9] Соответствует любому буквенному символу от A до Z, или любому числовому символу.
\d{2} Соответствует двум числовым символам.
[A-Z0-9] Соответствует любому буквенному символу от A до Z, или любому числовому символу.
- Выделение дефиса.
\d{3} Соответствует ровно трем числовым символам.
(-\d{3}){2} Найдите дефис, за которым следуют три числовых символа, и соответствуют двум вхождениям этого шаблона.
[A-Z0-9] Соответствует любому буквенному символу от A до Z, или любому числовому символу.
$ Совпадение должно заканчиваться в конце строки.

IsMatch(String, String, RegexOptions, TimeSpan) Вызов метода с параметром, равным RegexOptions.IgnoreCaseoptions значению , эквивалентен определению следующего регулярного выражения:

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

Для сравнения см. пример метода IsMatch(String, String) .

Комментарии

Метод IsMatch обычно используется для проверки строки или проверки соответствия строки определенному шаблону без извлечения этой строки для последующей обработки. Если вы хотите определить, соответствует ли одна или несколько строк шаблону регулярного выражения, а затем получить их для последующей Match обработки, вызовите метод или Matches .

Статический IsMatch(String, String, RegexOptions, TimeSpan) метод эквивалентен созданию объекта с шаблоном Regex регулярного выражения, заданным параметром pattern , и параметрами регулярного выражения, указанными options в и вызове метода экземпляра IsMatch(String) . Этот шаблон регулярного выражения кэшируется для быстрого получения обработчиком регулярных выражений.

Параметр pattern состоит из элементов языка регулярных выражений, которые символично описывают соответствующую строку. Дополнительные сведения о регулярных выражениях см. в разделе Регулярные выражения .NET и Язык регулярных выражений — краткий справочник.

Параметр matchTimeout указывает, как долго метод сопоставления шаблонов должен пытаться найти совпадение до истечения времени ожидания. Установка интервала тайм-аута предотвращает появление регулярных выражений, которые зависят от чрезмерного отслеживания с возвратом, чтобы перестать отвечать на запросы при обработке входных данных, содержащих близкие совпадения. Дополнительные сведения см. в статье Рекомендации по использованию регулярных выражений и обратного отслеживания. Если совпадение не найдено в течение этого интервала времени, метод создает RegexMatchTimeoutException исключение. matchTimeout Переопределяет любое значение времени ожидания по умолчанию, определенное для домена приложения, в котором выполняется метод.

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

Рекомендуется задать matchTimeout для параметра соответствующее значение, например две секунды. Если отключить тайм-ауты, указав InfiniteMatchTimeout, обработчик регулярных выражений обеспечивает немного лучшую производительность. Однако отключать время ожидания следует только при следующих условиях:

  • Если входные данные, обработанные регулярным выражением, являются производными от известного и доверенного источника или состоят из статического текста. Это исключает текст, который был динамически введен пользователями.

  • Если шаблон регулярного выражения тщательно протестирован, чтобы убедиться, что он эффективно обрабатывает совпадения, несоответствия и близкие совпадения.

  • Если шаблон регулярного выражения не содержит языковых элементов, которые, как известно, вызывают чрезмерное восстановление при обработке близкого совпадения.

См. также раздел

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

IsMatch(ReadOnlySpan<Char>, String, RegexOptions, TimeSpan)

Указывает, находит ли указанное регулярное выражение совпадение в указанном входном диапазоне, используя указанные параметры сопоставления и интервал времени ожидания.

public:
 static bool IsMatch(ReadOnlySpan<char> input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static bool IsMatch (ReadOnlySpan<char> input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member IsMatch : ReadOnlySpan<char> * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> bool
Public Shared Function IsMatch (input As ReadOnlySpan(Of Char), pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Boolean

Параметры

input
ReadOnlySpan<Char>

Диапазон для поиска совпадения.

pattern
String

Шаблон регулярного выражения для сопоставления.

options
RegexOptions

Побитовая комбинация значений перечисления, предоставляющая параметры для сопоставления.

matchTimeout
TimeSpan

Интервал времени ожидания или InfiniteMatchTimeout, чтобы указать, что метод не должен превышать время ожидания.

Возвращаемое значение

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.

Исключения

Произошла ошибка анализа регулярного выражения.

pattern имеет значение null.

Время ожидания истекло.

options не является допустимым RegexOptions значением или matchTimeout имеет отрицательное значение, ноль или больше приблизительно 24 дней.

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

IsMatch(String, String, RegexOptions)

Указывает, обнаружено ли в указанной входной строке соответствие заданному регулярному выражению, используя указанные параметры сопоставления.

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

Строка для поиска соответствия.

pattern
String

Шаблон регулярного выражения для сопоставления.

options
RegexOptions

Побитовая комбинация значений перечисления, предоставляющая параметры для сопоставления.

Возвращаемое значение

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.

Исключения

Произошла ошибка анализа регулярного выражения.

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

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

Время ожидания истекло. Дополнительные сведения о времени ожидания см. в разделе "Примечания".

Примеры

В следующем примере показано использование метода , IsMatch(String, String) чтобы определить, является ли строка допустимым номером части. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисами. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следуют два числовых символа, за которыми следует буквенно-цифровой символ. Второй набор, состоящий из трех символов, должен быть числовым. Третий набор, состоящий из четырех символов, должен содержать три числовых символа, за которыми следует буквенно-цифровой символ.

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.

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

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

В следующей таблице показано, как интерпретируется шаблон регулярного выражения.

Шаблон Описание
^ Начало совпадения в начале строки.
[A-Z0-9] Соответствует любому буквенному символу от A до Z, или любому числовому символу.
\d{2} Соответствует двум числовым символам.
[A-Z0-9] Соответствует любому буквенному символу от A до Z, или любому числовому символу.
- Выделение дефиса.
\d{3} Соответствует ровно трем числовым символам.
(-\d{3}){2} Найдите дефис, за которым следуют три числовых символа, и соответствуют двум вхождениям этого шаблона.
[A-Z0-9] Соответствует любому буквенному символу от A до Z, или любому числовому символу.
$ Совпадение должно заканчиваться в конце строки.

IsMatch(String, String, RegexOptions) Вызов метода с параметром, равным RegexOptions.IgnoreCaseoptions значению , эквивалентен определению следующего регулярного выражения:

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

Для сравнения см. пример метода IsMatch(String, String) .

Комментарии

Метод IsMatch обычно используется для проверки строки или проверки соответствия строки определенному шаблону без извлечения этой строки для последующей обработки. Если вы хотите определить, соответствует ли одна или несколько строк шаблону регулярного выражения, а затем получить их для последующей Match обработки, вызовите метод или Matches .

Статический IsMatch(String, String, RegexOptions) метод эквивалентен созданию объекта с шаблоном Regex регулярного выражения, заданным параметром pattern , и параметрами регулярного выражения, указанными options в и вызове метода экземпляра IsMatch(String) . Этот шаблон регулярного выражения кэшируется для быстрого получения обработчиком регулярных выражений.

Параметр pattern состоит из элементов языка регулярных выражений, которые символично описывают соответствующую строку. Дополнительные сведения о регулярных выражениях см. в разделе Регулярные выражения .NET и Язык регулярных выражений — краткий справочник.

Исключение RegexMatchTimeoutException возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, указанный для домена приложения, в котором вызывается метод . Если в свойствах домена приложения не определено время ожидания или значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.

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

Время ожидания этого метода истекает через интервал, равный значению времени ожидания по умолчанию для домена приложения, в котором он вызывается. Если значение времени ожидания не определено для домена приложения, используется значение InfiniteMatchTimeout, которое предотвращает истечение времени ожидания метода. Рекомендуемый статический метод проверки соответствия шаблону — IsMatch(String, String, RegexOptions, TimeSpan), который позволяет задать интервал времени ожидания.

См. также раздел

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

IsMatch(ReadOnlySpan<Char>, String, RegexOptions)

Указывает, находит ли указанное регулярное выражение совпадение в указанном входном диапазоне с помощью указанных параметров сопоставления.

public:
 static bool IsMatch(ReadOnlySpan<char> input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static bool IsMatch (ReadOnlySpan<char> input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member IsMatch : ReadOnlySpan<char> * string * System.Text.RegularExpressions.RegexOptions -> bool
Public Shared Function IsMatch (input As ReadOnlySpan(Of Char), pattern As String, options As RegexOptions) As Boolean

Параметры

input
ReadOnlySpan<Char>

Диапазон для поиска совпадения.

pattern
String

Шаблон регулярного выражения для сопоставления.

options
RegexOptions

Побитовая комбинация значений перечисления, предоставляющая параметры для сопоставления.

Возвращаемое значение

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.

Исключения

Произошла ошибка анализа регулярного выражения.

pattern имеет значение null.

Время ожидания истекло.

options не имеет допустимого RegexOptions значения.

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

IsMatch(String, 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

Строка для поиска соответствия.

pattern
String

Шаблон регулярного выражения для сопоставления.

Возвращаемое значение

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.

Исключения

Произошла ошибка анализа регулярного выражения.

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

Время ожидания истекло. Дополнительные сведения о времени ожидания см. в разделе "Примечания".

Примеры

В следующем примере показано использование метода , IsMatch(String, String) чтобы определить, является ли строка допустимым номером части. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисами. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следуют два числовых символа, за которыми следует буквенно-цифровой символ. Второй набор, состоящий из трех символов, должен быть числовым. Третий набор, состоящий из четырех символов, должен содержать три числовых символа, за которыми следует буквенно-цифровой символ.

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.

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

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

В следующей таблице показано, как интерпретируется шаблон регулярного выражения.

Шаблон Описание
^ Начните матч в начале линии.
[a-zA-Z0-9] Совпадение с одним буквенным символом (a через z или A через Z) или числовым символом.
\d{2} Соответствует двум числовым символам.
[a-zA-Z0-9] Совпадение с одним буквенным символом (a через z или A через Z) или числовым символом.
- Выделение дефиса.
\d{3} Соответствует ровно трем числовым символам.
(-\d{3}){2} Найдите дефис, за которым следуют три числовых символа, и соответствуют двум вхождениям этого шаблона.
[a-zA-Z0-9] Совпадение с одним буквенным символом (a через z или A через Z) или числовым символом.
$ Завершите матч в конце строки.

Комментарии

Метод IsMatch обычно используется для проверки строки или проверки соответствия строки определенному шаблону без извлечения этой строки для последующей обработки. Если вы хотите определить, соответствует ли одна или несколько строк шаблону регулярного выражения, а затем получить их для последующей Match обработки, вызовите метод или Matches .

Статический IsMatch(String, String) метод эквивалентен созданию объекта с шаблоном Regex регулярного выражения, заданным параметром pattern , и вызову метода экземпляра IsMatch(String) . Этот шаблон регулярного выражения кэшируется для быстрого получения обработчиком регулярных выражений.

Параметр pattern состоит из элементов языка регулярных выражений, которые символично описывают соответствующую строку. Дополнительные сведения о регулярных выражениях см. в разделе Регулярные выражения .NET и Язык регулярных выражений — краткий справочник.

Исключение RegexMatchTimeoutException возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, указанный для домена приложения, в котором вызывается метод . Если в свойствах домена приложения не определено время ожидания или значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.

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

Время ожидания этого метода истекает после интервала, равного значению времени ожидания по умолчанию для домена приложения, в котором вызывается метод. Если значение времени ожидания не определено для домена приложения, используется значение InfiniteMatchTimeout, которое предотвращает истечение времени ожидания метода. Рекомендуемый статический метод проверки соответствия шаблону — IsMatch(String, String, RegexOptions, TimeSpan), который позволяет задать интервал времени ожидания.

См. также раздел

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

IsMatch(ReadOnlySpan<Char>, String)

Указывает, находит ли указанное регулярное выражение совпадение в указанном входном диапазоне.

public:
 static bool IsMatch(ReadOnlySpan<char> input, System::String ^ pattern);
public static bool IsMatch (ReadOnlySpan<char> input, string pattern);
static member IsMatch : ReadOnlySpan<char> * string -> bool
Public Shared Function IsMatch (input As ReadOnlySpan(Of Char), pattern As String) As Boolean

Параметры

input
ReadOnlySpan<Char>

Диапазон для поиска совпадения.

pattern
String

Шаблон регулярного выражения для сопоставления.

Возвращаемое значение

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.

Исключения

Произошла ошибка анализа регулярного выражения.

pattern имеет значение null.

Время ожидания истекло.

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

IsMatch(ReadOnlySpan<Char>, Int32)

Указывает, находит ли регулярное выражение, указанное в конструкторе регулярных выражений, совпадение в указанном входном диапазоне.

public:
 bool IsMatch(ReadOnlySpan<char> input, int startat);
public bool IsMatch (ReadOnlySpan<char> input, int startat);
member this.IsMatch : ReadOnlySpan<char> * int -> bool
Public Function IsMatch (input As ReadOnlySpan(Of Char), startat As Integer) As Boolean

Параметры

input
ReadOnlySpan<Char>

Диапазон для поиска совпадения.

startat
Int32

Отсчитываемая от нуля позиция символа, с которой начинается поиск.

Возвращаемое значение

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.

Исключения

Время ожидания истекло.

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

IsMatch(String)

Указывает, обнаружено ли в указанной входной строке соответствие регулярному выражению, заданному в конструкторе Regex.

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

Строка для поиска соответствия.

Возвращаемое значение

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.

Исключения

input имеет значение null.

Время ожидания истекло. Дополнительные сведения о времени ожидания см. в разделе "Примечания".

Примеры

В следующем примере показано использование метода , IsMatch(String) чтобы определить, является ли строка допустимым номером части. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисами. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следуют два числовых символа, за которыми следует буквенно-цифровой символ. Второй набор, состоящий из трех символов, должен быть числовым. Третий набор, состоящий из четырех символов, должен содержать три числовых символа, за которыми следует буквенно-цифровой символ.

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.

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

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

В следующей таблице показано, как интерпретируется шаблон регулярного выражения.

Шаблон Описание
^ Начните матч в начале линии.
[a-zA-Z0-9] Совпадение с одним буквенным символом (a через z или A через Z) или числовым символом.
\d{2} Соответствует двум числовым символам.
[a-zA-Z0-9] Совпадение с одним буквенным символом (a через z или A через Z) или числовым символом.
- Выделение дефиса.
\d{3} Соответствует ровно трем числовым символам.
(-\d{3}){2} Найдите дефис, за которым следует три числовых символа, и совпадете с двумя вхождениями этого шаблона.
[a-zA-Z0-9] Совпадение с одним алфавитным символом (a до z или A через Z) или числовым символом.
$ Завершите матч в конце строки.

Комментарии

Метод IsMatch обычно используется для проверки строки или для того, чтобы убедиться, что строка соответствует определенному шаблону, не извлекая ее для последующей манипуляции. Если вы хотите определить, соответствует ли одна или несколько строк шаблону регулярного выражения, а затем получить их для последующей Match обработки, вызовите метод или Matches .

Исключение RegexMatchTimeoutException возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, заданный конструктором Regex.Regex(String, RegexOptions, TimeSpan) . Если при вызове конструктора не задан интервал времени ожидания, создается исключение, если операция превышает любое значение времени ожидания, установленное для домена приложения, в котором Regex создается объект. Если время ожидания не определено в Regex вызове конструктора или в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.

См. также раздел

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

IsMatch(ReadOnlySpan<Char>)

Указывает, находит ли регулярное выражение, указанное в конструкторе регулярных выражений, совпадение в заданном диапазоне входных данных.

public:
 bool IsMatch(ReadOnlySpan<char> input);
public bool IsMatch (ReadOnlySpan<char> input);
member this.IsMatch : ReadOnlySpan<char> -> bool
Public Function IsMatch (input As ReadOnlySpan(Of Char)) As Boolean

Параметры

input
ReadOnlySpan<Char>

Диапазон для поиска совпадения.

Возвращаемое значение

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.

Исключения

Время ожидания истекло.

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

IsMatch(String, Int32)

Указывает, обнаружено ли в указанной входной строке соответствие (начинающееся с указанной позиции в этой строке) регулярному выражению, заданному в конструкторе Regex.

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

Строка для поиска соответствия.

startat
Int32

Расположение символа, с которого необходимо начать поиск.

Возвращаемое значение

Значение true, если регулярное выражение обнаруживает соответствие; в противном случае — значение false.

Исключения

input имеет значение null.

Параметр startat имеет значение меньше нуля или больше длины input.

Время ожидания истекло. Дополнительные сведения о времени ожидания см. в разделе "Примечания".

Примеры

В следующем примере показано использование метода , IsMatch(String, Int32) чтобы определить, является ли строка допустимым номером части. Выполняется поиск номера части, следующей за двоеточием (:) символ в строке. Метод IndexOf(Char) используется для определения положения символа двоеточия, который затем передается методу IsMatch(String, Int32) . Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисами. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следуют два числовых символа, за которыми следует буквенно-цифровой символ. Второй набор, состоящий из трех символов, должен быть числовым. Третий набор, состоящий из четырех символов, должен содержать три числовых символа, за которыми следует буквенно-цифровой символ.

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.

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

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

В следующей таблице показано, как интерпретируется шаблон регулярного выражения.

Шаблон Описание
[a-zA-Z0-9] Совпадение с одним алфавитным символом (a до z или A через Z) или числовым символом.
\d{2} Соответствует двум числовым символам.
[a-zA-Z0-9] Совпадение с одним алфавитным символом (a до z или A через Z) или числовым символом.
- Выделение дефиса.
\d{3} Соответствует ровно трем числовым символам.
(-\d{3}){2} Найдите дефис, за которым следует три числовых символа, и совпадете с двумя вхождениями этого шаблона.
[a-zA-Z0-9] Совпадение с одним алфавитным символом (a до z или A через Z) или числовым символом.
$ Завершите матч в конце строки.

Комментарии

Метод IsMatch обычно используется для проверки строки или для того, чтобы убедиться, что строка соответствует определенному шаблону, не извлекая ее для последующей манипуляции. Если вы хотите определить, соответствует ли одна или несколько строк шаблону регулярного выражения, а затем получить их для последующей Match обработки, вызовите метод или Matches .

Дополнительные сведения о startatсм. в разделе "Примечания" статьи Match(String, Int32).

Исключение RegexMatchTimeoutException возникает, если время выполнения операции сопоставления превышает интервал времени ожидания, заданный конструктором Regex.Regex(String, RegexOptions, TimeSpan) . Если при вызове конструктора не задан интервал времени ожидания, создается исключение, если операция превышает любое значение времени ожидания, установленное для домена приложения, в котором Regex создается объект. Если время ожидания не определено в Regex вызове конструктора или в свойствах домена приложения или если значение времени ожидания равно Regex.InfiniteMatchTimeout, исключение не создается.

См. также раздел

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