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>, Int32) |
Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанном входном диапазоне. |
IsMatch(ReadOnlySpan<Char>, String) |
Указывает, находит ли указанное регулярное выражение совпадение в указанном входном диапазоне. |
IsMatch(String, Int32) |
Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанной входной строке, начиная с указанной начальной позиции в строке. |
IsMatch(String) |
Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанной входной строке. |
IsMatch(ReadOnlySpan<Char>) |
Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанном входном диапазоне. |
IsMatch(String, String, RegexOptions, TimeSpan)
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
Указывает, находит ли указанное регулярное выражение совпадение в указанной входной строке, используя указанные параметры сопоставления и интервал времени ожидания.
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 миллисекундах.
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.
Шаблон регулярного выражения:
^[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) с параметром options
, заданным для RegexOptions.IgnoreCase, эквивалентен определению следующего регулярного выражения:
[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)
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
Указывает, находит ли указанное регулярное выражение совпадение в указанном входном диапазоне, используя указанные параметры сопоставления и интервал времени ожидания.
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)
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
Указывает, находит ли указанное регулярное выражение совпадение в указанной входной строке, используя указанные параметры сопоставления.
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) для определения того, является ли строка допустимым номером части. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисом. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следует два числовых символа, за которыми следует буквенно-цифровой символ. Второй набор, состоящий из трех символов, должен быть числовым. Третий набор, состоящий из четырех символов, должен иметь три числовых символа, за которым следует буквенно-цифровой символ.
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) с параметром options
, заданным для RegexOptions.IgnoreCase, эквивалентен определению следующего регулярного выражения:
[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)
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
Указывает, находит ли указанное регулярное выражение совпадение в указанном входном диапазоне с использованием указанных параметров сопоставления.
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)
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
Указывает, находит ли указанное регулярное выражение совпадение в указанной входной строке.
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) для определения того, является ли строка допустимым номером части. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисом. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следует два числовых символа, за которыми следует буквенно-цифровой символ. Второй набор, состоящий из трех символов, должен быть числовым. Третий набор, состоящий из четырех символов, должен иметь три числовых символа, за которым следует буквенно-цифровой символ.
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.
Шаблон регулярного выражения:
^[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>, Int32)
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанном входном диапазоне.
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(ReadOnlySpan<Char>, String)
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
Указывает, находит ли указанное регулярное выражение совпадение в указанном входном диапазоне.
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(String, Int32)
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
Указывает, находит ли регулярное выражение, указанное в конструкторе 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). Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисом. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следует два числовых символа, за которыми следует буквенно-цифровой символ. Второй набор, состоящий из трех символов, должен быть числовым. Третий набор, состоящий из четырех символов, должен иметь три числовых символа, за которым следует буквенно-цифровой символ.
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.
Шаблон регулярного выражения:
[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, исключение не возникает.
См. также раздел
Применяется к
IsMatch(String)
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
Указывает, находит ли регулярное выражение, указанное в конструкторе 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) для определения того, является ли строка допустимым номером части. Регулярное выражение предполагает, что номер части имеет определенный формат, состоящий из трех наборов символов, разделенных дефисом. Первый набор, содержащий четыре символа, должен состоять из буквенно-цифрового символа, за которым следует два числовых символа, за которыми следует буквенно-цифровой символ. Второй набор, состоящий из трех символов, должен быть числовым. Третий набор, состоящий из четырех символов, должен иметь три числовых символа, за которым следует буквенно-цифровой символ.
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.
Шаблон регулярного выражения:
^[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>)
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
- Исходный код:
- Regex.Match.cs
Указывает, находит ли регулярное выражение, указанное в конструкторе Regex, совпадение в указанном входном диапазоне.
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
.
Исключения
Произошло время ожидания.