Regex.Match 메서드
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
입력 문자열에서 정규식 패턴과 일치하는 부분 문자열을 검색하고 첫 번째 항목을 단일 Match 개체로 반환합니다.
오버로드
Match(String) |
지정된 입력 문자열에서 Regex 생성자에 지정된 정규식의 첫 번째 항목을 검색합니다. |
Match(String, Int32) |
입력 문자열에서 문자열의 지정된 시작 위치에서 시작하여 정규식의 첫 번째 발생을 검색합니다. |
Match(String, String) |
지정된 입력 문자열에서 지정된 정규식의 첫 번째 항목을 검색합니다. |
Match(String, Int32, Int32) |
입력 문자열에서 지정된 시작 위치에서 시작하여 지정된 문자 수만 검색하는 정규식의 첫 번째 발생을 검색합니다. |
Match(String, String, RegexOptions) |
지정된 일치 옵션을 사용하여 입력 문자열에서 지정된 정규식의 첫 번째 항목을 검색합니다. |
Match(String, String, RegexOptions, TimeSpan) |
지정된 일치 옵션 및 시간 제한 간격을 사용하여 입력 문자열에서 지정된 정규식의 첫 번째 항목을 검색합니다. |
Match(String)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
지정된 입력 문자열에서 Regex 생성자에 지정된 정규식의 첫 번째 항목을 검색합니다.
public:
System::Text::RegularExpressions::Match ^ Match(System::String ^ input);
public System.Text.RegularExpressions.Match Match (string input);
member this.Match : string -> System.Text.RegularExpressions.Match
Public Function Match (input As String) As Match
매개 변수
- input
- String
일치 항목을 검색할 문자열입니다.
반환
일치 항목에 대한 정보가 들어 있는 개체입니다.
예외
input
null
.
시간 초과가 발생했습니다. 제한 시간에 대한 자세한 내용은 주의 섹션을 참조하세요.
예제
다음 예제에서는 문자열에서 정규식 패턴 일치를 찾은 다음 일치하는 그룹, 캡처 및 캡처 위치를 나열합니다.
#using <System.dll>
using namespace System;
using namespace System::Text::RegularExpressions;
void main()
{
String^ text = "One car red car blue car";
String^ pat = "(\\w+)\\s+(car)";
// Compile the regular expression.
Regex^ r = gcnew Regex( pat,RegexOptions::IgnoreCase );
// Match the regular expression pattern against a text string.
Match^ m = r->Match(text);
int matchCount = 0;
while ( m->Success )
{
Console::WriteLine( "Match{0}", ++matchCount );
for ( int i = 1; i <= 2; i++ )
{
Group^ g = m->Groups[ i ];
Console::WriteLine( "Group{0}='{1}'", i, g );
CaptureCollection^ cc = g->Captures;
for ( int j = 0; j < cc->Count; j++ )
{
Capture^ c = cc[ j ];
System::Console::WriteLine( "Capture{0}='{1}', Position={2}", j, c, c->Index );
}
}
m = m->NextMatch();
}
}
// This example displays the following output:
// Match1
// Group1='One'
// Capture0='One', Position=0
// Group2='car'
// Capture0='car', Position=4
// Match2
// Group1='red'
// Capture0='red', Position=8
// Group2='car'
// Capture0='car', Position=12
// Match3
// Group1='blue'
// Capture0='blue', Position=16
// Group2='car'
// Capture0='car', Position=21
using System;
using System.Text.RegularExpressions;
class Example
{
static void Main()
{
string text = "One car red car blue car";
string pat = @"(\w+)\s+(car)";
// Instantiate the regular expression object.
Regex r = new Regex(pat, RegexOptions.IgnoreCase);
// Match the regular expression pattern against a text string.
Match m = r.Match(text);
int matchCount = 0;
while (m.Success)
{
Console.WriteLine("Match"+ (++matchCount));
for (int i = 1; i <= 2; i++)
{
Group g = m.Groups[i];
Console.WriteLine("Group"+i+"='" + g + "'");
CaptureCollection cc = g.Captures;
for (int j = 0; j < cc.Count; j++)
{
Capture c = cc[j];
System.Console.WriteLine("Capture"+j+"='" + c + "', Position="+c.Index);
}
}
m = m.NextMatch();
}
}
}
// This example displays the following output:
// Match1
// Group1='One'
// Capture0='One', Position=0
// Group2='car'
// Capture0='car', Position=4
// Match2
// Group1='red'
// Capture0='red', Position=8
// Group2='car'
// Capture0='car', Position=12
// Match3
// Group1='blue'
// Capture0='blue', Position=16
// Group2='car'
// Capture0='car', Position=21
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim text As String = "One car red car blue car"
Dim pattern As String = "(\w+)\s+(car)"
' Instantiate the regular expression object.
Dim r As Regex = new Regex(pattern, RegexOptions.IgnoreCase)
' Match the regular expression pattern against a text string.
Dim m As Match = r.Match(text)
Dim matchcount as Integer = 0
Do While m.Success
matchCount += 1
Console.WriteLine("Match" & (matchCount))
Dim i As Integer
For i = 1 to 2
Dim g as Group = m.Groups(i)
Console.WriteLine("Group" & i & "='" & g.ToString() & "'")
Dim cc As CaptureCollection = g.Captures
Dim j As Integer
For j = 0 to cc.Count - 1
Dim c As Capture = cc(j)
Console.WriteLine("Capture" & j & "='" & c.ToString() _
& "', Position=" & c.Index)
Next
Next
m = m.NextMatch()
Loop
End Sub
End Module
' This example displays the following output:
' Match1
' Group1='One'
' Capture0='One', Position=0
' Group2='car'
' Capture0='car', Position=4
' Match2
' Group1='red'
' Capture0='red', Position=8
' Group2='car'
' Capture0='car', Position=12
' Match3
' Group1='blue'
' Capture0='blue', Position=16
' Group2='car'
' Capture0='car', Position=21
정규식 패턴 (\w+)\s+(car)
앞에 오는 단어와 함께 "car"라는 단어의 발생과 일치합니다. 다음 표와 같이 해석됩니다.
무늬 | 묘사 |
---|---|
(\w+) |
하나 이상의 단어 문자를 찾습니다. 첫 번째 캡처링 그룹입니다. |
\s+ |
하나 이상의 공백 문자를 찾습니다. |
(자동차) | 리터럴 문자열 "car"를 묶습니다. 두 번째 캡처링 그룹입니다. |
설명
Match(String) 메서드는 입력 문자열의 정규식 패턴과 일치하는 첫 번째 부분 문자열을 반환합니다. 정규식 패턴을 작성하는 데 사용되는 언어 요소에 대한 자세한 내용은 정규식 언어 - 빠른 참조참조하세요.
반환된 Match 개체의 Success 속성 값을 확인하여 입력 문자열에서 정규식 패턴이 발견되었는지 여부를 확인할 수 있습니다. 일치 항목이 발견되면 반환된 Match 개체의 Value 속성에는 정규식 패턴과 일치하는 input
부분 문자열이 포함됩니다. 일치하는 항목이 없으면 해당 값이 String.Empty.
이 메서드는 정규식 패턴과 일치하는 input
첫 번째 부분 문자열을 반환합니다. 반환된 Match 개체의 Match.NextMatch 메서드를 반복적으로 호출하여 후속 일치 항목을 검색할 수 있습니다.
Regex.Matches(String) 메서드를 호출하여 단일 메서드 호출에서 모든 일치 항목을 검색할 수도 있습니다.
일치하는 작업의 실행 시간이 Regex.Regex(String, RegexOptions, TimeSpan) 생성자가 지정한 제한 시간 간격을 초과하면 RegexMatchTimeoutException 예외가 throw됩니다. 생성자를 호출할 때 제한 시간 간격을 설정하지 않으면 작업이 Regex 개체가 만들어진 애플리케이션 도메인에 대해 설정된 제한 시간 값을 초과하면 예외가 throw됩니다. Regex 생성자 호출 또는 애플리케이션 도메인의 속성에 제한 시간이 정의되지 않거나 시간 제한 값이 Regex.InfiniteMatchTimeout경우 예외가 throw되지 않습니다.
추가 정보
- NextMatch()
- 정규식 언어 - 빠른 참조
적용 대상
Match(String, Int32)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
입력 문자열에서 문자열의 지정된 시작 위치에서 시작하여 정규식의 첫 번째 발생을 검색합니다.
public:
System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int startat);
public System.Text.RegularExpressions.Match Match (string input, int startat);
member this.Match : string * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, startat As Integer) As Match
매개 변수
- input
- String
일치 항목을 검색할 문자열입니다.
- startat
- Int32
검색을 시작할 문자 위치(0부터 시작)입니다.
반환
일치 항목에 대한 정보가 들어 있는 개체입니다.
예외
input
null
.
startat
0보다 작거나 input
길이보다 큽니다.
시간 초과가 발생했습니다. 제한 시간에 대한 자세한 내용은 주의 섹션을 참조하세요.
설명
이 API에 대한 자세한 내용은 Regex.Match대한
추가 정보
- NextMatch()
- 정규식 언어 - 빠른 참조
적용 대상
Match(String, String)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
지정된 입력 문자열에서 지정된 정규식의 첫 번째 항목을 검색합니다.
public:
static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern);
public static System.Text.RegularExpressions.Match Match (string input, string pattern);
static member Match : string * string -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String) As Match
매개 변수
- input
- String
일치 항목을 검색할 문자열입니다.
- pattern
- String
일치시킬 정규식 패턴입니다.
반환
일치 항목에 대한 정보가 들어 있는 개체입니다.
예외
정규식 구문 분석 오류가 발생했습니다.
input
또는 pattern
null
.
시간 초과가 발생했습니다. 제한 시간에 대한 자세한 내용은 주의 섹션을 참조하세요.
예제
다음 예제에서는 Match(String, String) 메서드를 호출하여 하나 이상의 z
문자를 포함하는 첫 번째 단어를 찾은 다음 Match.NextMatch 메서드를 호출하여 추가 일치 항목을 찾습니다.
using System;
using System.Text.RegularExpressions;
namespace Examples
{
public class Example
{
public static void Main()
{
string input = "ablaze beagle choral dozen elementary fanatic " +
"glaze hunger inept jazz kitchen lemon minus " +
"night optical pizza quiz restoration stamina " +
"train unrest vertical whiz xray yellow zealous";
string pattern = @"\b\w*z+\w*\b";
Match m = Regex.Match(input, pattern);
while (m.Success)
{
Console.WriteLine("'{0}' found at position {1}", m.Value, m.Index);
m = m.NextMatch();
}
}
}
}
// The example displays the following output:
// 'ablaze' found at position 0
// 'dozen' found at position 21
// 'glaze' found at position 46
// 'jazz' found at position 65
// 'pizza' found at position 104
// 'quiz' found at position 110
// 'whiz' found at position 157
// 'zealous' found at position 174
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim input As String = "ablaze beagle choral dozen elementary fanatic " +
"glaze hunger inept jazz kitchen lemon minus " +
"night optical pizza quiz restoration stamina " +
"train unrest vertical whiz xray yellow zealous"
Dim pattern As String = "\b\w*z+\w*\b"
Dim m As Match = Regex.Match(input, pattern)
Do While m.Success
Console.WriteLine("'{0}' found at position {1}", m.Value, m.Index)
m = m.NextMatch()
Loop
End Sub
End Module
' The example displays the following output:
'ablaze' found at position 0
'dozen' found at position 21
'glaze' found at position 46
'jazz' found at position 65
'pizza' found at position 104
'quiz' found at position 110
'whiz' found at position 157
'zealous' found at position 174
\b\w*z+\w*\b
정규식 패턴은 다음 표와 같이 해석됩니다.
무늬 | 묘사 |
---|---|
\b |
단어 경계에서 일치를 시작합니다. |
\w* |
0, 1개 이상의 단어 문자를 찾습니다. |
z+ |
하나 이상의 z 문자를 일치시킬 수 있습니다. |
\w* |
0, 1개 이상의 단어 문자를 찾습니다. |
\b |
단어 경계에서 일치 항목을 종료합니다. |
설명
Match(String, String) 메서드는 입력 문자열의 정규식 패턴과 일치하는 첫 번째 부분 문자열을 반환합니다. 정규식 패턴을 작성하는 데 사용되는 언어 요소에 대한 자세한 내용은 정규식 언어 - 빠른 참조참조하세요.
정적 Match(String, String) 메서드는 지정된 정규식 패턴을 사용하여 Regex 개체를 생성하고 인스턴스 Match(String) 메서드를 호출하는 것과 같습니다. 이 경우 정규식 엔진은 정규식 패턴을 캐시합니다.
pattern
매개 변수는 일치시킬 문자열을 상징적으로 설명하는 정규식 언어 요소로 구성됩니다. 정규식에 대한 자세한 내용은 .NET 정규식 및 정규식 언어 - 빠른 참조참조하세요.
반환된 Match 개체의 Success 속성 값을 확인하여 입력 문자열에서 정규식 패턴이 발견되었는지 여부를 확인할 수 있습니다. 일치 항목이 발견되면 반환된 Match 개체의 Value 속성에는 정규식 패턴과 일치하는 input
부분 문자열이 포함됩니다. 일치하는 항목이 없으면 해당 값이 String.Empty.
이 메서드는 정규식 패턴과 일치하는 input
첫 번째 부분 문자열을 반환합니다. 반환된 Match 개체의 Match.NextMatch 메서드를 반복적으로 호출하여 후속 일치 항목을 검색할 수 있습니다.
Regex.Matches(String, String) 메서드를 호출하여 단일 메서드 호출에서 모든 일치 항목을 검색할 수도 있습니다.
일치 작업의 실행 시간이 메서드가 호출되는 애플리케이션 도메인에 지정된 제한 시간 간격을 초과하면 RegexMatchTimeoutException 예외가 throw됩니다. 애플리케이션 도메인의 속성에 제한 시간이 정의되어 있지 않거나 시간 제한 값이 Regex.InfiniteMatchTimeout경우 예외가 throw되지 않습니다.
호출자 참고
이 메서드는 호출되는 애플리케이션 도메인의 기본 제한 시간 값과 동일한 간격 후에 시간 초과됩니다. 애플리케이션 도메인에 대해 제한 시간 값이 정의되지 않은 경우 메서드의 시간 초과를 방지하는 InfiniteMatchTimeout값이 사용됩니다. 패턴 일치를 검색하는 데 권장되는 정적 메서드는 시간 제한 간격을 설정할 수 있는 Match(String, String).
추가 정보
- NextMatch()
- 정규식 언어 - 빠른 참조
적용 대상
Match(String, Int32, Int32)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
입력 문자열에서 지정된 시작 위치에서 시작하여 지정된 문자 수만 검색하는 정규식의 첫 번째 발생을 검색합니다.
public:
System::Text::RegularExpressions::Match ^ Match(System::String ^ input, int beginning, int length);
public System.Text.RegularExpressions.Match Match (string input, int beginning, int length);
member this.Match : string * int * int -> System.Text.RegularExpressions.Match
Public Function Match (input As String, beginning As Integer, length As Integer) As Match
매개 변수
- input
- String
일치 항목을 검색할 문자열입니다.
- beginning
- Int32
검색할 가장 왼쪽 위치를 정의하는 입력 문자열의 문자 위치(0부터 시작)입니다.
- length
- Int32
검색에 포함할 부분 문자열의 문자 수입니다.
반환
일치 항목에 대한 정보가 들어 있는 개체입니다.
예외
input
null
.
beginning
0보다 작거나 input
길이보다 큽니다.
-또는-
length
0보다 작거나 input
길이보다 큽니다.
-또는-
beginning
+
length
-1
input
범위를 벗어난 위치를 식별합니다.
시간 초과가 발생했습니다. 제한 시간에 대한 자세한 내용은 주의 섹션을 참조하세요.
설명
Match(String, Int32, Int32) 메서드는 입력 문자열의 일부에서 정규식 패턴과 일치하는 첫 번째 부분 문자열을 반환합니다. 정규식 패턴을 작성하는 데 사용되는 언어 요소에 대한 자세한 내용은 정규식 언어 - 빠른 참조참조하세요.
Match(String, Int32, Int32) 메서드가 검색하는 정규식 패턴은 Regex 클래스 생성자 중 하나에 대한 호출에 의해 정의됩니다. 정규식 패턴을 형성할 수 있는 요소에 대한 자세한 내용은 정규식 언어 - 빠른 참조참조하세요.
Match(String, Int32, Int32) 메서드는 beginning
정의된 input
부분을 검색하고 정규식 패턴을 length
매개 변수를 검색합니다.
beginning
항상 검색에 포함할 가장 왼쪽 문자의 인덱스를 정의하고 length
검색할 최대 문자 수를 정의합니다. 함께 검색 범위를 정의합니다. 일치 항목의 인덱스가 input
시작을 기준으로 계산된다는 점을 제외하고 동작은 input
효과적으로 input.Substring(beginning, length)
것과 같습니다. 즉, 패턴의 시작 또는 끝에 있는 앵커 또는 너비가 0인 어설션은 이 범위 밖에 input
없는 것처럼 동작합니다. 예를 들어 앵커 ^
, \G
및 \A
beginning
충족되고 $
\z
beginning + length - 1
충족됩니다.
검색이 왼쪽에서 오른쪽(기본값)으로 진행되는 경우 정규식 엔진은 인덱스 beginning
문자에서 인덱스 beginning + length - 1
문자로 검색합니다. 검색이 오른쪽에서 왼쪽으로 진행되도록 RegexOptions.RightToLeft 옵션을 사용하여 정규식 엔진을 인스턴스화한 경우 정규식 엔진은 인덱스 beginning + length - 1
문자에서 인덱스 beginning
문자로 검색합니다.
이 메서드는 이 범위 내에서 찾은 첫 번째 일치 항목을 반환합니다. 반환된 Match 개체의 Match.NextMatch 메서드를 반복적으로 호출하여 후속 일치 항목을 검색할 수 있습니다.
반환된 Match 개체의 Success 속성 값을 확인하여 입력 문자열에서 정규식 패턴이 발견되었는지 여부를 확인할 수 있습니다. 일치 항목이 발견되면 반환된 Match 개체의 Value 속성에는 정규식 패턴과 일치하는 input
부분 문자열이 포함됩니다. 일치하는 항목이 없으면 해당 값이 String.Empty.
일치하는 작업의 실행 시간이 Regex.Regex(String, RegexOptions, TimeSpan) 생성자가 지정한 제한 시간 간격을 초과하면 RegexMatchTimeoutException 예외가 throw됩니다. 생성자를 호출할 때 제한 시간 값을 설정하지 않으면 작업이 Regex 개체가 만들어진 애플리케이션 도메인에 대해 설정된 제한 시간 값을 초과하면 예외가 throw됩니다. Regex 생성자 호출 또는 애플리케이션 도메인의 속성에 제한 시간이 정의되지 않거나 시간 제한 값이 Regex.InfiniteMatchTimeout경우 예외가 throw되지 않습니다.
추가 정보
- NextMatch()
- 정규식 언어 - 빠른 참조
적용 대상
Match(String, String, RegexOptions)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
지정된 일치 옵션을 사용하여 입력 문자열에서 지정된 정규식의 첫 번째 항목을 검색합니다.
public:
static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static System.Text.RegularExpressions.Match Match (string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions) As Match
매개 변수
- input
- String
일치 항목을 검색할 문자열입니다.
- pattern
- String
일치시킬 정규식 패턴입니다.
- options
- RegexOptions
일치 옵션을 제공하는 열거형 값의 비트 조합입니다.
반환
일치 항목에 대한 정보가 들어 있는 개체입니다.
예외
정규식 구문 분석 오류가 발생했습니다.
input
또는 pattern
null
.
options
RegexOptions 값의 유효한 비트 조합이 아닙니다.
시간 초과가 발생했습니다. 제한 시간에 대한 자세한 내용은 주의 섹션을 참조하세요.
예제
다음 예제에서는 문자 "a"로 시작하는 단어와 일치하는 정규식을 정의합니다. RegexOptions.IgnoreCase 옵션을 사용하여 정규식이 대문자 "a"와 소문자 "a"로 시작하는 단어를 찾을 수 있도록 합니다.
using System;
using System.Text.RegularExpressions;
namespace Examples
{
public class Example2
{
public static void Main()
{
string pattern = @"\ba\w*\b";
string input = "An extraordinary day dawns with each new day.";
Match m = Regex.Match(input, pattern, RegexOptions.IgnoreCase);
if (m.Success)
Console.WriteLine("Found '{0}' at position {1}.", m.Value, m.Index);
}
}
}
// The example displays the following output:
// Found 'An' at position 0.
Imports System.Text.RegularExpressions
Module Example
Public Sub Main()
Dim pattern As String = "\ba\w*\b"
Dim input As String = "An extraordinary day dawns with each new day."
Dim m As Match = Regex.Match(input, pattern, RegexOptions.IgnoreCase)
If m.Success Then
Console.WriteLine("Found '{0}' at position {1}.", m.Value, m.Index)
End If
End Sub
End Module
' The example displays the following output:
' Found 'An' at position 0.
\ba\w*\b
정규식 패턴은 다음 표와 같이 해석됩니다.
무늬 | 묘사 |
---|---|
\b |
단어 경계에서 일치를 시작합니다. |
a |
문자 "a"를 칭합니다. |
\w* |
0, 1개 이상의 단어 문자를 찾습니다. |
\b |
단어 경계에서 일치 항목을 종료합니다. |
설명
Match(String, String, RegexOptions) 메서드는 입력 문자열의 정규식 패턴과 일치하는 첫 번째 부분 문자열을 반환합니다. 정규식 패턴을 작성하는 데 사용되는 언어 요소에 대한 자세한 내용은 정규식 언어 - 빠른 참조참조하세요.
정적 Match(String, String, RegexOptions) 메서드는 Regex(String, RegexOptions) 생성자를 사용하여 Regex 개체를 생성하고 인스턴스 Match(String) 메서드를 호출하는 것과 같습니다.
pattern
매개 변수는 일치시킬 문자열을 상징적으로 설명하는 정규식 언어 요소로 구성됩니다. 정규식에 대한 자세한 내용은 .NET 정규식 및 정규식 언어 - 빠른 참조참조하세요.
반환된 Match 개체의 Success 속성 값을 확인하여 입력 문자열에서 정규식 패턴이 발견되었는지 여부를 확인할 수 있습니다. 일치 항목이 발견되면 반환된 Match 개체의 Value 속성에는 정규식 패턴과 일치하는 input
부분 문자열이 포함됩니다. 일치하는 항목이 없으면 해당 값이 String.Empty.
이 메서드는 정규식 패턴과 일치하는 input
첫 번째 부분 문자열을 반환합니다. 반환된 Match 개체의 NextMatch 메서드를 반복적으로 호출하여 후속 일치 항목을 검색할 수 있습니다.
Regex.Matches(String, String, RegexOptions) 메서드를 호출하여 단일 메서드 호출에서 모든 일치 항목을 검색할 수도 있습니다.
일치 작업의 실행 시간이 메서드가 호출되는 애플리케이션 도메인에 지정된 제한 시간 간격을 초과하면 RegexMatchTimeoutException 예외가 throw됩니다. 애플리케이션 도메인의 속성에 제한 시간이 정의되어 있지 않거나 시간 제한 값이 Regex.InfiniteMatchTimeout경우 예외가 throw되지 않습니다.
호출자 참고
이 메서드는 호출되는 애플리케이션 도메인의 기본 제한 시간 값과 동일한 간격 후에 시간 초과됩니다. 애플리케이션 도메인에 대해 제한 시간 값이 정의되지 않은 경우 메서드의 시간 초과를 방지하는 InfiniteMatchTimeout값이 사용됩니다. 패턴 일치를 검색하는 데 권장되는 정적 메서드는 시간 제한 간격을 설정할 수 있는 Match(String, String).
추가 정보
- NextMatch()
- 정규식 언어 - 빠른 참조
적용 대상
Match(String, String, RegexOptions, TimeSpan)
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
- Source:
- Regex.Match.cs
지정된 일치 옵션 및 시간 제한 간격을 사용하여 입력 문자열에서 지정된 정규식의 첫 번째 항목을 검색합니다.
public:
static System::Text::RegularExpressions::Match ^ Match(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static System.Text.RegularExpressions.Match Match (string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Match : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> System.Text.RegularExpressions.Match
Public Shared Function Match (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As Match
매개 변수
- input
- String
일치 항목을 검색할 문자열입니다.
- pattern
- String
일치시킬 정규식 패턴입니다.
- options
- RegexOptions
일치 옵션을 제공하는 열거형 값의 비트 조합입니다.
- matchTimeout
- TimeSpan
제한 시간 간격 또는 메서드가 시간 초과되지 않아야 함을 나타내는 InfiniteMatchTimeout.
반환
일치 항목에 대한 정보가 들어 있는 개체입니다.
예외
정규식 구문 분석 오류가 발생했습니다.
input
또는 pattern
null
.
시간 초과가 발생했습니다. 제한 시간에 대한 자세한 내용은 주의 섹션을 참조하세요.
설명
Match(String, String, RegexOptions, TimeSpan) 메서드는 입력 문자열의 정규식 패턴과 일치하는 첫 번째 부분 문자열을 반환합니다. 정규식 패턴을 작성하는 데 사용되는 언어 요소에 대한 자세한 내용은 정규식 언어 - 빠른 참조참조하세요.
정적 Match(String, String, RegexOptions, TimeSpan) 메서드는 Regex(String, RegexOptions, TimeSpan) 생성자를 사용하여 Regex 개체를 생성하고 인스턴스 Match(String) 메서드를 호출하는 것과 같습니다.
pattern
매개 변수는 일치시킬 문자열을 상징적으로 설명하는 정규식 언어 요소로 구성됩니다. 정규식에 대한 자세한 내용은 .NET 정규식 및 정규식 언어 - 빠른 참조참조하세요.
반환된 Match 개체의 Success 속성 값을 확인하여 입력 문자열에서 정규식 패턴이 발견되었는지 여부를 확인할 수 있습니다. 일치 항목이 발견되면 반환된 Match 개체의 Value 속성에는 정규식 패턴과 일치하는 input
부분 문자열이 포함됩니다. 일치하는 항목이 없으면 해당 값이 String.Empty.
이 메서드는 정규식 패턴과 일치하는 input
첫 번째 부분 문자열을 반환합니다. 반환된 Match 개체의 NextMatch 메서드를 반복적으로 호출하여 후속 일치 항목을 검색할 수 있습니다.
Regex.Matches(String, String, RegexOptions) 메서드를 호출하여 단일 메서드 호출에서 모든 일치 항목을 검색할 수도 있습니다.
matchTimeout
매개 변수는 패턴 일치 메서드가 시간이 초과되기 전에 일치 항목을 찾으려고 시도하는 기간을 지정합니다. 제한 시간 간격을 설정하면 과도한 역추적에 의존하는 정규식이 가까운 일치 항목이 포함된 입력을 처리할 때 응답을 중지하는 것처럼 보이지 않습니다. 자세한 내용은 정규식 및 matchTimeout
메서드가 실행되는 애플리케이션 도메인에 대해 정의된 기본 제한 시간 값을 재정의합니다.
호출자 참고
matchTimeout
매개 변수를 2초와 같은 적절한 값으로 설정하는 것이 좋습니다.
InfiniteMatchTimeout지정하여 시간 초과를 사용하지 않도록 설정하면 정규식 엔진이 약간 더 나은 성능을 제공합니다. 그러나 다음 조건에서만 시간 초과를 사용하지 않도록 설정해야 합니다.
정규식에서 처리된 입력이 알려진 신뢰할 수 있는 원본에서 파생되거나 정적 텍스트로 구성된 경우 사용자가 동적으로 입력한 텍스트는 제외됩니다.
정규식 패턴을 철저히 테스트하여 일치 항목, 비 일치 항목 및 근사 일치 항목을 효율적으로 처리하는지 확인합니다.
정규식 패턴에 거의 일치 항목을 처리할 때 과도한 역추적을 일으키는 것으로 알려진 언어 요소가 없는 경우
추가 정보
- 정규식 언어 - 빠른 참조
적용 대상
.NET