Regex.Split Regex.Split Regex.Split Regex.Split Method

정의

정규식 일치에 의해 정의된 위치에서 부분 문자열로 이루어진 배열로 입력 문자열을 분할합니다.Splits an input string into an array of substrings at the positions defined by a regular expression match.

오버로드

Split(String, String, RegexOptions, TimeSpan) Split(String, String, RegexOptions, TimeSpan) Split(String, String, RegexOptions, TimeSpan) Split(String, String, RegexOptions, TimeSpan)

지정된 정규식 패턴에 의해 정의된 위치에서 부분 문자열로 이루어진 배열로 입력 문자열을 분할합니다.Splits an input string into an array of substrings at the positions defined by a specified regular expression pattern. 추가 매개 변수는 일치하는 항목이 없는 경우 제한 시간 간격과 일치 작업을 수정하는 옵션을 지정합니다.Additional parameters specify options that modify the matching operation and a time-out interval if no match is found.

Split(String, String, RegexOptions) Split(String, String, RegexOptions) Split(String, String, RegexOptions) Split(String, String, RegexOptions)

지정된 정규식 패턴에 의해 정의된 위치에서 부분 문자열로 이루어진 배열로 입력 문자열을 분할합니다.Splits an input string into an array of substrings at the positions defined by a specified regular expression pattern. 지정한 옵션에 따라 일치 작업이 수정됩니다.Specified options modify the matching operation.

Split(String, Int32, Int32) Split(String, Int32, Int32) Split(String, Int32, Int32) Split(String, Int32, Int32)

입력 문자열을 Regex 생성자에서 지정된 정규식에 의해 정의된 위치에서 지정된 최대 수만큼 부분 문자열의 배열로 분할합니다.Splits an input string a specified maximum number of times into an array of substrings, at the positions defined by a regular expression specified in the Regex constructor. 입력 문자열에서 지정된 문자 위치부터 정규식 패턴을 검색합니다.The search for the regular expression pattern starts at a specified character position in the input string.

Split(String, Int32) Split(String, Int32) Split(String, Int32) Split(String, Int32)

입력 문자열을 Regex 생성자에서 지정된 정규식에 의해 정의된 위치에서 지정된 최대 수만큼 부분 문자열의 배열로 분할합니다.Splits an input string a specified maximum number of times into an array of substrings, at the positions defined by a regular expression specified in the Regex constructor.

Split(String) Split(String) Split(String) Split(String)

Regex 생성자에서 지정된 정규식 패턴에 의해 정의된 위치에서 입력 문자열을 부분 문자열의 배열로 분할합니다.Splits an input string into an array of substrings at the positions defined by a regular expression pattern specified in the Regex constructor.

Split(String, String) Split(String, String) Split(String, String) Split(String, String)

정규식 패턴에 의해 정의된 위치에서 부분 문자열로 이루어진 배열로 입력 문자열을 분할합니다.Splits an input string into an array of substrings at the positions defined by a regular expression pattern.

Split(String, String, RegexOptions, TimeSpan) Split(String, String, RegexOptions, TimeSpan) Split(String, String, RegexOptions, TimeSpan) Split(String, String, RegexOptions, TimeSpan)

지정된 정규식 패턴에 의해 정의된 위치에서 부분 문자열로 이루어진 배열로 입력 문자열을 분할합니다.Splits an input string into an array of substrings at the positions defined by a specified regular expression pattern. 추가 매개 변수는 일치하는 항목이 없는 경우 제한 시간 간격과 일치 작업을 수정하는 옵션을 지정합니다.Additional parameters specify options that modify the matching operation and a time-out interval if no match is found.

public:
 static cli::array <System::String ^> ^ Split(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options, TimeSpan matchTimeout);
public static string[] Split (string input, string pattern, System.Text.RegularExpressions.RegexOptions options, TimeSpan matchTimeout);
static member Split : string * string * System.Text.RegularExpressions.RegexOptions * TimeSpan -> string[]
Public Shared Function Split (input As String, pattern As String, options As RegexOptions, matchTimeout As TimeSpan) As String()

매개 변수

input
String String String String

분할할 문자열입니다.The string to split.

pattern
String String String String

일치 항목을 찾을 정규식 패턴입니다.The regular expression pattern to match.

options
RegexOptions RegexOptions RegexOptions RegexOptions

일치 옵션을 제공하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that provide options for matching.

matchTimeout
TimeSpan TimeSpan TimeSpan TimeSpan

시간 제한 간격이거나, 메서드에 시간 제한이 없어야 함을 나타내는 InfiniteMatchTimeout입니다.A time-out interval, or InfiniteMatchTimeout to indicate that the method should not time out.

반환

String[]

문자열 배열입니다.A string array.

예외

정규식 구문 분석 오류가 발생한 경우A regular expression parsing error occurred.

input 또는 patternnull인 경우or pattern is null.

options RegexOptions 값의 유효한 비트 조합이 아닌 경우is not a valid bitwise combination of RegexOptions values.

또는-or- matchTimeout 음수, 0 또는 약 24일보다 큽니다.is negative, zero, or greater than approximately 24 days.

시간이 초과되었습니다.A time-out occurred. 시간 제한에 대한 자세한 내용은 설명 섹션을 참조하세요.For more information about time-outs, see the Remarks section.

설명

합니다 Regex.Split 메서드는 비슷합니다는 String.Split(Char[]) 메서드 Regex.Split 구분 기호 문자 집합이 아니라 정규식에 의해 결정에서 문자열을 분할 합니다.The Regex.Split methods are similar to the String.Split(Char[]) method, except that Regex.Split splits the string at a delimiter determined by a regular expression instead of a set of characters. 문자열 수 만큼 분할 됩니다.The string is split as many times as possible. 반환 값은 원래 값인 요소가 하나 포함 구분 기호가 없습니다 있으면 input 문자열입니다.If no delimiter is found, the return value contains one element whose value is the original input string.

pattern 상징적으로 일치 하는 문자열을 설명 하는 정규식 언어 요소의 매개 변수를 구성 합니다.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. 정규식에 대 한 자세한 내용은 참조 하세요. .NET Framework 정규식 하 고 정규식 언어-빠른 참조합니다.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

중요

정적 호출에 사용 된 정규식 컴파일 Split 메서드 자동으로 캐시 됩니다.Compiled regular expressions used in calls to static Split methods are automatically cached. 컴파일된 정규식의 수명을 직접 관리 하려면 인스턴스를 사용 하 여 Split 메서드.To manage the lifetime of compiled regular expressions yourself, use the instance Split methods.

여러 일치 항목이 서로 인접 한 경우 빈 문자열 배열에 삽입 됩니다.If multiple matches are adjacent to one another, an empty string is inserted into the array. 예를 들어, 단일 하이픈에서 문자열을 분할 하면 반환 된 배열이 인접 한 하이픈을 두 개 있는 위치에 빈 문자열을 포함 합니다.For example, splitting a string on a single hyphen causes the returned array to include an empty string in the position where two adjacent hyphens are found.

입력된 문자열의 끝 또는 시작 부분에서 일치 하는 경우 빈 문자열 시작 이나 반환 된 배열의 끝에 포함 됩니다.If a match is found at the beginning or the end of the input string, an empty string is included at the beginning or the end of the returned array. 다음 예제에서는 정규식 패턴 [a-z]+ 대문자나 소문자 알파벳 문자에서 입력된 문자열을 분할 합니다.The following example uses the regular expression pattern [a-z]+ to split an input string on any uppercase or lowercase alphabetic character. 시작 하 고 알파벳 문자를 일치 하는 종료 하는 문자열, 반환 된 배열의 첫 번째 및 마지막 요소의 값은 String.Empty합니다.Because the string begins and ends with matching alphabetic characters, the value of the first and last element of the returned array is String.Empty.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = "[a-z]+";
      string input = "Abc1234Def5678Ghi9012Jklm";
      string[] result = Regex.Split(input, pattern, 
                                    RegexOptions.IgnoreCase,
                                    TimeSpan.FromMilliseconds(500));
      for (int ctr = 0; ctr < result.Length; ctr++) {
         Console.Write("'{0}'", result[ctr]);
         if (ctr < result.Length - 1) 
            Console.Write(", ");
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//       '', '1234', '5678', '9012', ''
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "[a-z]+"
      Dim input As String = "Abc1234Def5678Ghi9012Jklm"
      Dim result() As String = Regex.Split(input, pattern, 
                                           RegexOptions.IgnoreCase,
                                           TimeSpan.FromMilliseconds(500))
      For ctr As Integer = 0 To result.Length - 1
         Console.Write("'{0}'", result(ctr))
         If ctr < result.Length - 1 Then Console.Write(", ")
      Next
      Console.WriteLine()
   End Sub               
End Module
' The example displays the following output:
'       '', '1234', '5678', '9012', ''

캡처링 괄호를 사용 하는 경우는 Regex.Split 캡처된 텍스트는 결과 문자열 배열에 포함 된 식입니다.If capturing parentheses are used in a Regex.Split expression, any captured text is included in the resulting string array. 예를 들어, "진한 보라-pear" 하이픈에서 캡처링 괄호 내에서 문자열을 분할 하는 경우 반환된 된 배열에는 하이픈을 포함 하는 문자열 요소를 포함 합니다.For example, if you split the string "plum-pear" on a hyphen placed within capturing parentheses, the returned array includes a string element that contains the hyphen.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "plum-pear";
      string pattern = "(-)";

      string[] substrings = Regex.Split(input, pattern);    // Split on hyphens
      foreach (string match in substrings)
      {
         Console.WriteLine("'{0}'", match);
      }
   }
}
// The example displays the following output:
//    'plum'
//    '-'
//    'pear'      
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "plum-pear"
      Dim pattern As String = "(-)" 
      
      Dim substrings() As String = Regex.Split(input, pattern)    ' Split on hyphens.
      For Each match As String In substrings
         Console.WriteLine("'{0}'", match)
      Next
   End Sub
End Module
' The method writes the following to the console:
'    'plum'
'    '-'
'    'pear'      

그러나 정규식 패턴에서 캡처링 괄호의 여러 집합을 포함 하는 경우이 메서드의 동작은.NET Framework의 버전에 따라 다릅니다.However, when the regular expression pattern includes multiple sets of capturing parentheses, the behavior of this method depends on the version of the .NET Framework. .NET Framework 1.0 및 1.1에서 캡처링 괄호의 첫 번째 집합에 일치 하는 항목이 없는 경우 추가 캡처링 괄호에서 캡처된 텍스트가 포함 되지 않습니다 반환된 된 배열에.In the .NET Framework 1.0 and 1.1, if a match is not found within the first set of capturing parentheses, captured text from additional capturing parentheses is not included in the returned array. .NET Framework 2.0 부터는 모든 캡처된 텍스트에도 추가 됩니다 반환된 된 배열입니다.Starting with the .NET Framework 2.0, all captured text is also added to the returned array. 예를 들어, 다음 코드는 날짜 문자열에서 날짜 구분 기호를 포함 하 여 날짜의 요소를 추출 두 캡처링 괄호를 사용 합니다.For example, the following code uses two sets of capturing parentheses to extract the elements of a date, including the date delimiters, from a date string. 캡처 괄호의 첫 번째 집합 하이픈을 캡처하고 두 번째 집합 슬래시를 캡처합니다.The first set of capturing parentheses captures the hyphen, and the second set captures the forward slash. 예제 코드를 컴파일 및.NET Framework 1.0 또는 1.1에서 실행 하는 경우; 슬래시 문자 제외 이 컴파일 및.NET Framework 2.0 이상 버전에서 실행 하는 경우 이러한 포함 합니다.If the example code is compiled and run under the .NET Framework 1.0 or 1.1, it excludes the slash characters; if it is compiled and run under the .NET Framework 2.0 or later versions, it includes them.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = @"07/14/2007";   
      string pattern = @"(-)|(/)";

      foreach (string result in Regex.Split(input, pattern)) 
      {
         Console.WriteLine("'{0}'", result);
      }
   }
}
// In .NET 1.0 and 1.1, the method returns an array of
// 3 elements, as follows:
//    '07'
//    '14'
//    '2007'
//
// In .NET 2.0 and later, the method returns an array of
// 5 elements, as follows:
//    '07'
//    '/'
//    '14'
//    '/'
//    '2007' 
Imports System
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "07/14/2007"   
      Dim pattern As String = "(-)|(/)"
      For Each result As String In Regex.Split(input, pattern) 
         Console.WriteLine("'{0}'", result)
      Next
   End Sub
End Module
' In .NET 1.0 and 1.1, the method returns an array of
' 3 elements, as follows:
'    '07'
'    '14'
'    '2007'
'
' In .NET 2.0 and later, the method returns an array of
' 5 elements, as follows:
'    '07'
'    '/'
'    '14'
'    '/'
'    '2007' 

정규식에는 빈 문자열이 면과 일치할 수 있으면 Split 모든 위치에 빈 문자열 구분 기호를 찾을 수 있으므로 문자열 단일 문자 문자열 배열로 분할 합니다.If the regular expression can match the empty string, Split will split the string into an array of single-character strings because the empty string delimiter can be found at every location.

matchTimeout 매개 변수를 지정 시간 패턴 일치 하는 방법을 메서드 시간이 초과 되기 전에 일치를 찾으려고 시도 합니다. 입력을 처리할 때 응답을 중지 하도록 표시에서 과도 한 역 추적에 의존 하는 정규식 시간 제한 간격을 설정 하면 유사 항목 포함 하는 합니다.The matchTimeout parameter specifies how long a pattern matching method should try to find a match before it times out. Setting a time-out interval prevents regular expressions that rely on excessive backtracking from appearing to stop responding when they process input that contains near matches. 자세한 내용은 정규식에 대 한 모범 사례 하 고 역 추적합니다.For more information, see Best Practices for Regular Expressions and Backtracking. 해당 시간 간격의 일치 하는 항목이 없으면 메서드에서 throw 한 RegexMatchTimeoutException 예외입니다.If no match is found in that time interval, the method throws a RegexMatchTimeoutException exception. matchTimeout 메서드를 실행 하는 응용 프로그램 도메인에 대해 정의 된 모든 기본 제한 시간 값을 재정의 합니다.overrides any default time-out value defined for the application domain in which the method executes.

호출자 참고

설정 하는 것이 좋습니다는 matchTimeout 2 초 등의 값으로 적절 한 매개 변수입니다.We recommend that you set the matchTimeout parameter to an appropriate value, such as two seconds. 제한 시간을 사용 하지 않도록 지정 하 여 InfiniteMatchTimeout, 정규식 엔진은 약간 더 나은 성능을 제공 합니다.If you disable time-outs by specifying InfiniteMatchTimeout, the regular expression engine offers slightly better performance. 그러나 다음 조건 에서만 제한 시간을 비활성화 해야 합니다.However, you should disable time-outs only under the following conditions: -정규식에 의해 처리 된 입력 알려져 있고 신뢰할 수 있는 원본에서 파생 되거나는 정적 텍스트로 구성 됩니다.- When the input processed by a regular expression is derived from a known and trusted source or consists of static text. 이 제외 된 동적으로 사용자가 입력 텍스트입니다.This excludes text that has been dynamically input by users.

-정규식 패턴을 효율적으로 처리 되도록 철저히 테스트 하는 경우 일치 하지 않는, 일치 하 고 가까운 일치 합니다.- When the regular expression pattern has been thoroughly tested to ensure that it efficiently handles matches, non-matches, and near matches.

-정규식 패턴과 거의 일치 하는 처리 하는 경우 과도 한 역 추적을 일으키는 것으로 알려진 언어 요소가 없는 포함 합니다.- When the regular expression pattern contains no language elements that are known to cause excessive backtracking when processing a near match.

추가 정보

Split(String, String, RegexOptions) Split(String, String, RegexOptions) Split(String, String, RegexOptions) Split(String, String, RegexOptions)

지정된 정규식 패턴에 의해 정의된 위치에서 부분 문자열로 이루어진 배열로 입력 문자열을 분할합니다.Splits an input string into an array of substrings at the positions defined by a specified regular expression pattern. 지정한 옵션에 따라 일치 작업이 수정됩니다.Specified options modify the matching operation.

public:
 static cli::array <System::String ^> ^ Split(System::String ^ input, System::String ^ pattern, System::Text::RegularExpressions::RegexOptions options);
public static string[] Split (string input, string pattern, System.Text.RegularExpressions.RegexOptions options);
static member Split : string * string * System.Text.RegularExpressions.RegexOptions -> string[]
Public Shared Function Split (input As String, pattern As String, options As RegexOptions) As String()

매개 변수

input
String String String String

분할할 문자열입니다.The string to split.

pattern
String String String String

일치 항목을 찾을 정규식 패턴입니다.The regular expression pattern to match.

options
RegexOptions RegexOptions RegexOptions RegexOptions

일치 옵션을 제공하는 열거형 값의 비트 조합입니다.A bitwise combination of the enumeration values that provide options for matching.

반환

String[]

문자열 배열입니다.An array of strings.

예외

정규식 구문 분석 오류가 발생한 경우A regular expression parsing error occurred.

input 또는 patternnull인 경우or pattern is null.

options RegexOptions 값의 유효한 비트 조합이 아닌 경우is not a valid bitwise combination of RegexOptions values.

시간이 초과되었습니다.A time-out occurred. 시간 제한에 대한 자세한 내용은 설명 섹션을 참조하세요.For more information about time-outs, see the Remarks section.

설명

합니다 Regex.Split 메서드는 비슷합니다는 String.Split(Char[]) 메서드 Regex.Split 구분 기호 문자 집합이 아니라 정규식에 의해 결정에서 문자열을 분할 합니다.The Regex.Split methods are similar to the String.Split(Char[]) method, except that Regex.Split splits the string at a delimiter determined by a regular expression instead of a set of characters. 문자열 수 만큼 분할 됩니다.The string is split as many times as possible. 반환 값은 원래 값인 요소가 하나 포함 구분 기호가 없습니다 있으면 input 문자열입니다.If no delimiter is found, the return value contains one element whose value is the original input string.

pattern 상징적으로 일치 하는 문자열을 설명 하는 정규식 언어 요소의 매개 변수를 구성 합니다.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. 정규식에 대 한 자세한 내용은 참조 하세요. .NET Framework 정규식 하 고 정규식 언어-빠른 참조합니다.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

중요

정적 호출에 사용 된 정규식 컴파일 Split 메서드 자동으로 캐시 됩니다.Compiled regular expressions used in calls to static Split methods are automatically cached. 컴파일된 정규식의 수명을 직접 관리 하려면 인스턴스를 사용 하 여 Split 메서드.To manage the lifetime of compiled regular expressions yourself, use the instance Split methods.

여러 일치 항목이 서로 인접 한 경우 빈 문자열 배열에 삽입 됩니다.If multiple matches are adjacent to one another, an empty string is inserted into the array. 예를 들어, 단일 하이픈에서 문자열을 분할 하면 반환 된 배열이 인접 한 하이픈을 두 개 있는 위치에 빈 문자열을 포함 합니다.For example, splitting a string on a single hyphen causes the returned array to include an empty string in the position where two adjacent hyphens are found.

입력된 문자열의 끝 또는 시작 부분에서 일치 하는 경우 빈 문자열 시작 이나 반환 된 배열의 끝에 포함 됩니다.If a match is found at the beginning or the end of the input string, an empty string is included at the beginning or the end of the returned array. 다음 예제에서는 정규식 패턴 [a-z]+ 대문자나 소문자 알파벳 문자에서 입력된 문자열을 분할 합니다.The following example uses the regular expression pattern [a-z]+ to split an input string on any uppercase or lowercase alphabetic character. 시작 하 고 알파벳 문자를 일치 하는 종료 하는 문자열, 반환 된 배열의 첫 번째 및 마지막 요소의 값은 String.Empty합니다.Because the string begins and ends with matching alphabetic characters, the value of the first and last element of the returned array is String.Empty.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = "[a-z]+";
      string input = "Abc1234Def5678Ghi9012Jklm";
      string[] result = Regex.Split(input, pattern, 
                                    RegexOptions.IgnoreCase);
      for (int ctr = 0; ctr < result.Length; ctr++) {
         Console.Write("'{0}'", result[ctr]);
         if (ctr < result.Length - 1) 
            Console.Write(", ");
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//       '', '1234', '5678', '9012', ''
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "[a-z]+"
      Dim input As String = "Abc1234Def5678Ghi9012Jklm"
      Dim result() As String = Regex.Split(input, pattern, 
                                           RegexOptions.IgnoreCase)
      For ctr As Integer = 0 To result.Length - 1
         Console.Write("'{0}'", result(ctr))
         If ctr < result.Length - 1 Then Console.Write(", ")
      Next
      Console.WriteLine()
   End Sub               
End Module
' The example displays the following output:
'       '', '1234', '5678', '9012', ''

캡처링 괄호를 사용 하는 경우는 Regex.Split 캡처된 텍스트는 결과 문자열 배열에 포함 된 식입니다.If capturing parentheses are used in a Regex.Split expression, any captured text is included in the resulting string array. 예를 들어, "진한 보라-pear" 하이픈에서 캡처링 괄호 내에서 문자열을 분할 하는 경우 반환된 된 배열에는 하이픈을 포함 하는 문자열 요소를 포함 합니다.For example, if you split the string "plum-pear" on a hyphen placed within capturing parentheses, the returned array includes a string element that contains the hyphen.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "plum-pear";
      string pattern = "(-)";

      string[] substrings = Regex.Split(input, pattern);    // Split on hyphens
      foreach (string match in substrings)
      {
         Console.WriteLine("'{0}'", match);
      }
   }
}
// The example displays the following output:
//    'plum'
//    '-'
//    'pear'      
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "plum-pear"
      Dim pattern As String = "(-)" 
      
      Dim substrings() As String = Regex.Split(input, pattern)    ' Split on hyphens.
      For Each match As String In substrings
         Console.WriteLine("'{0}'", match)
      Next
   End Sub
End Module
' The method writes the following to the console:
'    'plum'
'    '-'
'    'pear'      

그러나 정규식 패턴에서 캡처링 괄호의 여러 집합을 포함 하는 경우이 메서드의 동작은.NET Framework의 버전에 따라 다릅니다.However, when the regular expression pattern includes multiple sets of capturing parentheses, the behavior of this method depends on the version of the .NET Framework. .NET Framework 1.0 및 1.1에서 캡처링 괄호의 첫 번째 집합에 일치 하는 항목이 없는 경우 추가 캡처링 괄호에서 캡처된 텍스트가 포함 되지 않습니다 반환된 된 배열에.In the .NET Framework 1.0 and 1.1, if a match is not found within the first set of capturing parentheses, captured text from additional capturing parentheses is not included in the returned array. .NET Framework 2.0 부터는 모든 캡처된 텍스트에도 추가 됩니다 반환된 된 배열입니다.Starting with the .NET Framework 2.0, all captured text is also added to the returned array. 예를 들어, 다음 코드는 날짜 문자열에서 날짜 구분 기호를 포함 하 여 날짜의 요소를 추출 두 캡처링 괄호를 사용 합니다.For example, the following code uses two sets of capturing parentheses to extract the elements of a date, including the date delimiters, from a date string. 캡처 괄호의 첫 번째 집합 하이픈을 캡처하고 두 번째 집합 슬래시를 캡처합니다.The first set of capturing parentheses captures the hyphen, and the second set captures the forward slash. 예제 코드를 컴파일 및.NET Framework 1.0 또는 1.1에서 실행 하는 경우; 슬래시 문자 제외 이 컴파일 및.NET Framework 2.0 이상 버전에서 실행 하는 경우 이러한 포함 합니다.If the example code is compiled and run under the .NET Framework 1.0 or 1.1, it excludes the slash characters; if it is compiled and run under the .NET Framework 2.0 or later versions, it includes them.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = @"07/14/2007";   
      string pattern = @"(-)|(/)";

      foreach (string result in Regex.Split(input, pattern)) 
      {
         Console.WriteLine("'{0}'", result);
      }
   }
}
// In .NET 1.0 and 1.1, the method returns an array of
// 3 elements, as follows:
//    '07'
//    '14'
//    '2007'
//
// In .NET 2.0 and later, the method returns an array of
// 5 elements, as follows:
//    '07'
//    '/'
//    '14'
//    '/'
//    '2007' 
Imports System
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "07/14/2007"   
      Dim pattern As String = "(-)|(/)"
      For Each result As String In Regex.Split(input, pattern) 
         Console.WriteLine("'{0}'", result)
      Next
   End Sub
End Module
' In .NET 1.0 and 1.1, the method returns an array of
' 3 elements, as follows:
'    '07'
'    '14'
'    '2007'
'
' In .NET 2.0 and later, the method returns an array of
' 5 elements, as follows:
'    '07'
'    '/'
'    '14'
'    '/'
'    '2007' 

정규식에는 빈 문자열이 면과 일치할 수 있으면 Split 모든 위치에 빈 문자열 구분 기호를 찾을 수 있으므로 문자열 단일 문자 문자열 배열로 분할 합니다.If the regular expression can match the empty string, Split will split the string into an array of single-character strings because the empty string delimiter can be found at every location.

RegexMatchTimeoutException split 작업의 실행 시간이 메서드가 호출 되는 응용 프로그램 도메인에 대 한 지정 된 시간 제한 간격을 초과 하는 경우 예외가 throw 됩니다.The RegexMatchTimeoutException exception is thrown if the execution time of the split operation exceeds the time-out interval specified for the application domain in which the method is called. 시간 제한이 없으며 응용 프로그램 도메인의 속성에 정의 된 제한 시간 값이 아니면 Regex.InfiniteMatchTimeout, 예외가 throw 되지 않습니다.If no time-out is defined in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

호출자 참고

이 메서드는 메서드가 호출 되는 응용 프로그램 도메인의 기본 제한 시간 값에 해당 간격이 지난 후 시간이 합니다.This method times out after an interval that is equal to the default time-out value of the application domain in which the method is called. 응용 프로그램 도메인에 값에 대 한 제한 시간 값을 정의 되지 않은 경우 InfiniteMatchTimeout, 메서드 시간 초과 방지 하는는 데 사용 됩니다.If a time-out value has not been defined for the application domain, the value InfiniteMatchTimeout, which prevents the method from timing out, is used. 패턴 일치에 텍스트를 분할 하는 것에 대 한 권장 되는 정적 메서드는 Split(String, String, RegexOptions, TimeSpan), 시간 제한 간격을 설정할 수 있습니다.The recommended static method for splitting text on a pattern match is Split(String, String, RegexOptions, TimeSpan), which lets you set the time-out interval.

추가 정보

Split(String, Int32, Int32) Split(String, Int32, Int32) Split(String, Int32, Int32) Split(String, Int32, Int32)

입력 문자열을 Regex 생성자에서 지정된 정규식에 의해 정의된 위치에서 지정된 최대 수만큼 부분 문자열의 배열로 분할합니다.Splits an input string a specified maximum number of times into an array of substrings, at the positions defined by a regular expression specified in the Regex constructor. 입력 문자열에서 지정된 문자 위치부터 정규식 패턴을 검색합니다.The search for the regular expression pattern starts at a specified character position in the input string.

public:
 cli::array <System::String ^> ^ Split(System::String ^ input, int count, int startat);
public string[] Split (string input, int count, int startat);
member this.Split : string * int * int -> string[]
Public Function Split (input As String, count As Integer, startat As Integer) As String()

매개 변수

input
String String String String

분할될 문자열입니다.The string to be split.

count
Int32 Int32 Int32 Int32

분할할 수 있는 최대 횟수입니다.The maximum number of times the split can occur.

startat
Int32 Int32 Int32 Int32

입력 문자열에서 검색을 시작할 문자 위치입니다.The character position in the input string where the search will begin.

반환

String[]

문자열 배열입니다.An array of strings.

예외

startat 0보다 작거나 input의 길이보다 큰 경우is less than zero or greater than the length of input.

시간이 초과되었습니다.A time-out occurred. 시간 제한에 대한 자세한 내용은 설명 섹션을 참조하세요.For more information about time-outs, see the Remarks section.

설명

합니다 Regex.Split 메서드는 비슷합니다는 String.Split 메서드 Regex.Split 구분 기호 문자 집합이 아니라 정규식에 의해 결정에서 문자열을 분할 합니다.The Regex.Split methods are similar to the String.Split method, except that Regex.Split splits the string at a delimiter determined by a regular expression instead of a set of characters. count 매개 변수는 부분 문자열의 최대 수를 지정 합니다 input 문자열은 분할; 마지막 문자열이 문자열의 분할 되지 않은 나머지를 포함 합니다.The count parameter specifies the maximum number of substrings into which the input string is split; the last string contains the unsplit remainder of the string. count 값이 0 이면 가능한 만큼 분할의 기본 동작을 제공 합니다.A count value of zero provides the default behavior of splitting as many times as possible. startat 매개 변수는 첫 번째 구분 기호에 대 한 검색을 시작할 지점을 정의 합니다. (이 용도로 사용할 수 있습니다 선행 공백은 건너뛰도록).The startat parameter defines the point at which the search for the first delimiter begins (this can be used for skipping leading white space).

일치 하는 경우는 count+ 1 위치를 표시, 메서드를 포함 하는 요소가 하나인 배열 반환을 input 문자열입니다.If no matches are found from the count+1 position in the string, the method returns a one-element array that contains the input string. 하나 이상의 일치 항목 발견 되 면 반환 된 배열의 첫 번째 요소는 한 문자 일치 항목 앞까지 첫 번째 문자에서 문자열의 첫 번째 부분을 포함 합니다.If one or more matches are found, the first element of the returned array contains the first portion of the string from the first character up to one character before the match.

여러 일치 항목이 서로 인접 한 두 개 이상 발견 된 일치 레코드 수는 경우 보다 작은 count, 빈 문자열 배열에 삽입 됩니다.If multiple matches are adjacent to one another and the number of matches found is at least two less than count, an empty string is inserted into the array. 마찬가지로,에서 일치 하는 경우 startat을 문자열의 첫 번째 문자는 반환 된 배열의 첫 번째 요소는 빈 문자열입니다.Similarly, if a match is found at startat, which is the first character in the string, the first element of the returned array is an empty string. 수에 부분 문자열 equals와 일치 하는지 여부를 결정 하에서 일치 하는 인접 한 항목에서 발생 하는 빈 문자열 계산 되는, count합니다.That is, empty strings that result from adjacent matches are counted in determining whether the number of matched substrings equals count. 다음 예제에서는 정규식에에서 \d+ 문자열에서 숫자의 첫 번째 부분 문자열의 시작 위치를 찾는 데 사용 됩니다 및 문자열을 분할 최대 세 번 해당 위치에서 시작 합니다.In the following example, the regular expression \d+ is used to find the starting position of the first substring of numeric characters in a string, and then to split the string a maximum of three times starting at that position. 빈 문자열, 5-영문자 문자열이 및 문자열의 나머지 부분에서는 반환 된 문자열 배열 구성 입력된 문자열의 시작 부분 일치 하는 정규식 패턴이 있으므로Because the regular expression pattern matches the beginning of the input string, the returned string array consists of an empty string, a five-character alphabetic string, and the remainder of the string,

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\d+";
      Regex rgx = new Regex(pattern);
      string input = "123ABCDE456FGHIJ789KLMNO012PQRST";
      Match m = rgx.Match(input);
      if (m.Success) { 
         int startAt = m.Index;
         string[] result = rgx.Split(input, 3, startAt);
         for (int ctr = 0; ctr < result.Length; ctr++) {
            Console.Write("'{0}'", result[ctr]);
            if (ctr < result.Length - 1)
               Console.Write(", ");
         }
         Console.WriteLine();
      }
   }
}
// The example displays the following output:
//       '', 'ABCDE', 'FGHIJKL789MNOPQ012'
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\d+"
      Dim rgx As New Regex(pattern)
      Dim input As String = "123ABCDE456FGHIJ789KLMNO012PQRST"
      Dim m As Match = rgx.Match(input)
      If m.Success Then 
         Dim startAt As Integer = m.Index
         Dim result() As String = rgx.Split(input, 3, startAt)
         For ctr As Integer = 0 To result.Length - 1
            Console.Write("'{0}'", result(ctr))
            If ctr < result.Length - 1 Then Console.Write(", ")
         Next
         Console.WriteLine()
      End If
   End Sub               
End Module
' The example displays the following output:
'       '', 'ABCDE', 'FGHIJKL789MNOPQ012'

정규식에서 캡처링 괄호를 사용 하면 캡처된 텍스트는 분할 된 문자열의 배열에 포함 됩니다.If capturing parentheses are used in a regular expression, any captured text is included in the array of split strings. 그러나 캡처된 텍스트가 들어 있는 배열 요소 계산 되지 않습니다 결정 된 일치 레코드 수에 도달 하는지 여부를 count입니다.However, any array elements that contain captured text are not counted in determining whether the number of matches has reached count. 예를 들어 문자열을 분할 ' 다음 코드와 같이 7 요소 배열에 문자열 결과에 15 문자부터 최대 4 개에 "apple-apricot-plum-pear-pomegranate-pineapple-peach" 부분입니다.For example, splitting the string '"apple-apricot-plum-pear-pomegranate-pineapple-peach" into a maximum of four substrings beginning at character 15 in the string results in a seven-element array, as the following code shows.

Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "(-)"
      Dim input As String = "apple-apricot-plum-pear-pomegranate-pineapple-peach"

      Dim regex As Regex = New Regex(pattern)    
      ' Split on hyphens from 15th character on
      Dim substrings() As String = regex.Split(input, 4, 15)
      For Each match As String In substrings
         Console.WriteLine("'{0}'", match)
      Next
   End Sub  
End Module
' The example displays the following output:
'    'apple-apricot-plum'
'    '-'
'    'pear'
'    '-'
'    'pomegranate'
'    '-'
'    'pineapple-peach'      

그러나 정규식 패턴에서 캡처링 괄호의 여러 집합을 포함 하는 경우이 메서드의 동작은.NET Framework의 버전에 따라 다릅니다.However, when the regular expression pattern includes multiple sets of capturing parentheses, the behavior of this method depends on the version of the .NET Framework. .NET Framework 1.0 및 1.1에서 캡처링 괄호의 첫 번째 집합에 일치 하는 항목이 없는 경우 추가 캡처링 괄호에서 캡처된 텍스트가 포함 되지 않습니다 반환된 된 배열에.In .NET Framework 1.0 and 1.1, if a match is not found within the first set of capturing parentheses, captured text from additional capturing parentheses is not included in the returned array. .NET Framework 2.0 부터는 모든 캡처된 텍스트에도 추가 됩니다 반환된 된 배열입니다.Starting with the .NET Framework 2.0, all captured text is also added to the returned array. 예를 들어, 다음 코드는 문자열에서 개별 단어를 추출 하려면 캡처 괄호의 두 집합을 사용 합니다.For example, the following code uses two sets of capturing parentheses to extract the individual words in a string. 캡처 괄호의 첫 번째 집합 하이픈을 캡처하고 두 번째 집합은 세로 막대를 캡처합니다.The first set of capturing parentheses captures the hyphen, and the second set captures the vertical bar. 예제 코드를 컴파일 및.NET Framework 1.0 또는 1.1에서 실행 하는 경우 제외 세로 막대 문자 이 컴파일 및.NET Framework 2.0 이상 버전에서 실행 하는 경우 이러한 포함 합니다.If the example code is compiled and run under the .NET Framework 1.0 or 1.1, it excludes the vertical bar characters; if it is compiled and run under the .NET Framework 2.0 or later versions, it includes them.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = "(-)|([|])";     // possible delimiters found in string
      string input = "apple|apricot|plum|pear|pomegranate|pineapple|peach";

      Regex regex = new Regex(pattern);    
      // Split on delimiters from 15th character on
      string[] substrings = regex.Split(input, 4, 15);
      foreach (string match in substrings)
      {
         Console.WriteLine("'{0}'", match);
      }
   }
}
// In .NET 2.0 and later, the method returns an array of
// 7 elements, as follows:
//    apple|apricot|plum'
//    '|'
//    'pear'
//    '|'
//    'pomegranate'
//    '|'
//    'pineapple|peach'
// In .NET 1.0 and 1.1, the method returns an array of
// 4 elements, as follows:
//    'apple|apricot|plum'
//    'pear'
//    'pomegranate'
//    'pineapple|peach'
Imports System
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "(-)|([|])"   ' possible delimiters found in string
      Dim input As String = "apple|apricot|plum|pear|pomegranate|pineapple|peach"

      Dim regex As Regex = New Regex(pattern)    
      ' Split on delimiters from 15th character on
      Dim substrings() As String = regex.Split(input, 4, 15)
      For Each match As String In substrings
         Console.WriteLine("'{0}'", match)
      Next
   End Sub
End Module
' In .NET 2.0, the method returns an array of
' 7 elements, as follows:
'    apple|apricot|plum'
'    '|'
'    'pear'
'    '|'
'    'pomegranate'
'    '|'
'    'pineapple|peach'
' In .NET 1.0 and 1.1, the method returns an array of
' 4 elements, as follows:
'    'apple|apricot|plum'
'    'pear'
'    'pomegranate'
'    'pineapple|peach'

정규식에는 빈 문자열이 면과 일치할 수 있으면 Split 모든 위치에 빈 문자열 구분 기호를 찾을 수 있으므로 문자열 단일 문자 문자열 배열로 분할 합니다.If the regular expression can match the empty string, Split will split the string into an array of single-character strings because the empty string delimiter can be found at every location. 다음 예제에서는 입력된 문자열에, 문자로 시작 하는 대로 만큼 요소를 "문자" 문자열을 분할 "a"입니다.The following example splits the string "characters" into as many elements as the input string contains, starting with the character "a". Null 문자열 일치는 입력된 문자열의 끝, 때문에 null 문자열이 반환 되는 배열의 끝에 삽입 됩니다.Because the null string matches the end of the input string, a null string is inserted at the end of the returned array.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "characters";
      Regex regex = new Regex("");
      string[] substrings = regex.Split(input, input.Length, input.IndexOf("a"));
      Console.Write("{");
      for(int ctr = 0; ctr < substrings.Length; ctr++)
      {
         Console.Write(substrings[ctr]);
         if (ctr < substrings.Length - 1)
            Console.Write(", ");
      }
      Console.WriteLine("}");
   }
}
// The example displays the following output:   
//    {, c, h, a, r, a, c, t, e, rs}
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "characters"
      Dim regex As New Regex("")
      Dim substrings() As String = regex.Split(input, input.Length, _
                                               input.IndexOf("a"))
      Console.Write("{")
      For ctr As Integer = 0 to substrings.Length - 1
         Console.Write(substrings(ctr))
         If ctr < substrings.Length - 1 Then Console.Write(", ")
      Next
      Console.WriteLine("}")
   End Sub
End Module
' The example produces the following output:   
'    {, c, h, a, r, a, c, t, e, rs}

RegexMatchTimeoutException split 작업의 실행 시간에서 지정한 시간 제한 간격을 초과 하는 경우 예외가 발생 합니다 Regex.Regex(String, RegexOptions, TimeSpan) 생성자입니다.The RegexMatchTimeoutException exception is thrown if the execution time of the split operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. 생성자를 호출할 때 시간 제한 간격을 설정 하지 않으면, 작업이 있는 응용 프로그램 도메인에 설정 된 제한 시간 값을 초과 하면 예외가 throw 되는 Regex 개체가 만들어집니다.If you do not set a time-out interval when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. 제한 시간에 정의 된 경우는 Regex 생성자 호출 또는 응용 프로그램 도메인의 속성 또는 시간 제한 값이 Regex.InfiniteMatchTimeout, 예외가 throw 되지 않습니다If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown

추가 정보

Split(String, Int32) Split(String, Int32) Split(String, Int32) Split(String, Int32)

입력 문자열을 Regex 생성자에서 지정된 정규식에 의해 정의된 위치에서 지정된 최대 수만큼 부분 문자열의 배열로 분할합니다.Splits an input string a specified maximum number of times into an array of substrings, at the positions defined by a regular expression specified in the Regex constructor.

public:
 cli::array <System::String ^> ^ Split(System::String ^ input, int count);
public string[] Split (string input, int count);
member this.Split : string * int -> string[]
Public Function Split (input As String, count As Integer) As String()

매개 변수

input
String String String String

분할될 문자열입니다.The string to be split.

count
Int32 Int32 Int32 Int32

분할할 수 있는 최대 횟수입니다.The maximum number of times the split can occur.

반환

String[]

문자열 배열입니다.An array of strings.

예외

시간이 초과되었습니다.A time-out occurred. 시간 제한에 대한 자세한 내용은 설명 섹션을 참조하세요.For more information about time-outs, see the Remarks section.

설명

합니다 Regex.Split 메서드는 비슷합니다는 String.Split 메서드 Regex.Split 구분 기호 문자 집합이 아니라 정규식에 의해 결정에서 문자열을 분할 합니다.The Regex.Split methods are similar to the String.Split method, except that Regex.Split splits the string at a delimiter determined by a regular expression instead of a set of characters. 합니다 count 매개 변수는 부분 문자열의 최대 수를 지정 합니다 input 문자열의 분할 되지 않은 나머지를 포함 하는 마지막 문자열; 문자열을 분할할 수 있습니다.The count parameter specifies the maximum number of substrings into which the input string can be split; the last string contains the unsplit remainder of the string. count 값이 0 이면 가능한 만큼 분할의 기본 동작을 제공 합니다.A count value of zero provides the default behavior of splitting as many times as possible.

여러 일치 항목이 서로 인접 한 경우 또는 시작 이나 끝 일치 하는 경우 input, 발견 된 일치 레코드 수는 2 이상 및 보다 작은 count, 빈 문자열 배열에 삽입 됩니다.If multiple matches are adjacent to one another or if a match is found at the beginning or end of input, and the number of matches found is at least two less than count, an empty string is inserted into the array. 일치 하는 부분 문자열 같음 여부를 결정 하에서 시작 또는 입력된 문자열의 끝에서 일치 항목 또는 인접 한 일치 항목에서 발생 하는 빈 문자열 계산 되는, count합니다.That is, empty strings that result from adjacent matches or from matches at the beginning or end of the input string are counted in determining whether the number of matched substrings equals count. 다음 예제에서는 정규식에에서 /d+ 최대 세 가지 부분에 하나 이상의 10 진수를 포함 하는 입력된 문자열을 분할 하는 데 사용 됩니다.In the following example, the regular expression /d+ is used to split an input string that includes one or more decimal digits into a maximum of three substrings. 첫 번째 배열 요소를 포함 하는 정규식 패턴과 일치 하는 입력된 문자열의 시작 부분에 있으므로 String.Empty, 영문자 입력된 문자열에서 첫 번째 집합을 포함 하는 두 번째 및 세 번째 문자열의 나머지를 포함 합니다. 세 번째 일치 항목을 따릅니다.Because the beginning of the input string matches the regular expression pattern, the first array element contains String.Empty, the second contains the first set of alphabetic characters in the input string, and the third contains the remainder of the string that follows the third match.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\d+";
      Regex rgx = new Regex(pattern);
      string input = "123ABCDE456FGHIJKL789MNOPQ012";
      
      string[] result = rgx.Split(input, 3);
      for (int ctr = 0; ctr < result.Length; ctr++) {
         Console.Write("'{0}'", result[ctr]);
         if (ctr < result.Length - 1) 
            Console.Write(", ");
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//       '', 'ABCDE', 'FGHIJKL789MNOPQ012'
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\d+"
      Dim rgx As New Regex(pattern)
      Dim input As String = "123ABCDE456FGHIJKL789MNOPQ012"
      
      Dim result() As String = rgx.Split(input, 3)
      For ctr As Integer = 0 To result.Length - 1
         Console.Write("'{0}'", result(ctr))
         If ctr < result.Length - 1 Then Console.Write(", ")
      Next
      Console.WriteLine()
   End Sub               
End Module
' The example displays the following output:
'       '', 'ABCDE', 'FGHIJKL789MNOPQ012'

정규식에서 캡처링 괄호를 사용 하면 캡처된 텍스트는 분할 된 문자열의 배열에 포함 됩니다.If capturing parentheses are used in a regular expression, any captured text is included in the array of split strings. 그러나 캡처된 텍스트가 들어 있는 배열 요소 계산 되지 않습니다 결정 된 일치 레코드 수에 도달 하는지 여부를 count입니다.However, any array elements that contain captured text are not counted in determining whether the number of matches has reached count. 예를 들어 분할을 최대를 7 요소 배열에는 다음 코드와의 네 가지 부분 문자열이 결과 문자열 "apple-장의-진한 보라-pear-banana" 보여 줍니다.For example, splitting the string "apple-apricot-plum-pear-banana" into a maximum of four substrings results in a seven-element array, as the following code shows.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = "(-)";
      string input = "apple-apricot-plum-pear-banana";
      Regex regex = new Regex(pattern);         // Split on hyphens.
      string[] substrings = regex.Split(input, 4);
      foreach (string match in substrings)
      {
         Console.WriteLine("'{0}'", match);
      }
   }
}
// The example displays the following output:
//       'apple'
//       '-'
//       'apricot'
//       '-'
//       'plum'
//       '-'
//       'pear-banana'      
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "(-)"
      Dim input As String = "apple-apricot-plum-pear-banana"
      Dim regex As Regex = New Regex(pattern)         ' Split on hyphens.
      Dim substrings() As String = regex.Split(input, 4)
      For Each match As String In substrings
         Console.WriteLine("'{0}'", match)
      Next
   End Sub
End Module
' The example displays the following output:
'    'apple'
'    '-'
'    'apricot'
'    '-'
'    'plum'
'    '-'
'    'pear-banana'      

그러나 정규식 패턴에서 캡처링 괄호의 여러 집합을 포함 하는 경우이 메서드의 동작은.NET Framework의 버전에 따라 다릅니다.However, when the regular expression pattern includes multiple sets of capturing parentheses, the behavior of this method depends on the version of the .NET Framework. .NET Framework 1.0 및 1.1에서는 캡처 괄호의 첫 번째 집합에서 캡처된 텍스트만 반환된 된 배열에 포함 됩니다.In the .NET Framework 1.0 and 1.1, only captured text from the first set of capturing parentheses is included in the returned array. .NET Framework 2.0 부터는 모든 캡처된 텍스트 반환된 된 배열에 추가 됩니다.Starting with the .NET Framework 2.0, all captured text is added to the returned array. 그러나 캡처된 텍스트를 포함 하는 반환된 된 배열에 요소가 계산 되지 않습니다 결정 하는 데 수에 부분 문자열 equals와 일치 하는지 여부 count합니다.However, elements in the returned array that contain captured text are not counted in determining whether the number of matched substrings equals count. 예를 들어, 다음 코드에서는 정규식 날짜 문자열에서 날짜의 요소를 추출 하려면 두 캡처링 괄호 사용 합니다.For example, in the following code, a regular expression uses two sets of capturing parentheses to extract the elements of a date from a date string. 캡처 괄호의 첫 번째 집합 하이픈을 캡처하고 두 번째 집합 슬래시를 캡처합니다.The first set of capturing parentheses captures the hyphen, and the second set captures the forward slash. 에 대 한 호출을 Split(String, Int32) 메서드 다음 반환된 된 배열에는 최대 두 개의 요소를 지정 합니다.The call to the Split(String, Int32) method then specifies a maximum of two elements in the returned array. 예제 코드를 컴파일 및.NET Framework 1.0 또는 1.1에서 실행 하는 경우 메서드를 두 개의 요소로 문자열 배열을 반환 합니다.If the example code is compiled and run under the .NET Framework 1.0 or 1.1, the method returns a two-element string array. 컴파일된 이며.NET Framework 2.0 또는 이상 버전에서 실행 되며, 메서드는 세 개의 요소로 문자열 배열을 반환 합니다.If it is compiled and run under the .NET Framework 2.0 or later versions, the method returns a three-element string array.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = @"07/14/2007";   
      string pattern = @"(-)|(/)";
      Regex regex = new Regex(pattern);
      foreach (string result in regex.Split(input, 2)) 
      {
         Console.WriteLine("'{0}'", result);
      }
   }
}
// Under .NET 1.0 and 1.1, the method returns an array of
// 2 elements, as follows:
//    '07'
//    '14/2007'
//
// Under .NET 2.0 and later, the method returns an array of
// 3 elements, as follows:
//    '07'
//    '/'
//    '14/2007' 
Imports System
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "07/14/2007"   
      Dim pattern As String = "(-)|(/)"
      Dim regex As Regex = New Regex(pattern)
      For Each result As String In regex.Split(input, 2) 
         Console.WriteLine("'{0}'", result)
      Next
   End Sub
End Module
' In .NET 1.0 and 1.1, the method returns an array of
' 2 elements, as follows:
'    '07'
'    '14/2007'
'
' In .NET 2.0 and later, the method returns an array of
' 3 elements, as follows:
'    '07'
'    '/'
'    '14/2007' 

정규식에는 빈 문자열이 면과 일치할 수 있으면 Split(String, Int32) 모든 위치에 빈 문자열 구분 기호를 찾을 수 있으므로 문자열 단일 문자 문자열 배열로 분할 합니다.If the regular expression can match the empty string, Split(String, Int32) will split the string into an array of single-character strings because the empty string delimiter can be found at every location. 다음 예제에서는 입력된 문자열에 있는 요소 수 만큼에 "문자" 문자열을 분할 합니다.The following example splits the string "characters" into as many elements as there are in the input string. 입력된 문자열의 시작과 일치 하는 null 문자열을 하기 때문에 null 문자열이 반환 되는 배열의 시작 부분에 삽입 됩니다.Because the null string matches the beginning of the input string, a null string is inserted at the beginning of the returned array. 그러면 열 번째 요소의 입력된 문자열의 끝에 두 개의 문자로 구성 됩니다.This causes the tenth element to consist of the two characters at the end of the input string.

Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "characters"
      Dim regex As New Regex("")
      Dim substrings() As String = regex.Split(input, input.Length)
      Console.Write("{")
      For ctr As Integer = 0 to substrings.Length - 1
         Console.Write(substrings(ctr))
         if ctr < substrings.Length - 1 Then Console.Write(", ")
      Next
      Console.WriteLine("}")
   End Sub
End Module
' The example displays the following output:   
'    {, c, h, a, r, a, c, t, e, rs}

RegexMatchTimeoutException split 작업의 실행 시간에서 지정한 시간 제한 간격을 초과 하는 경우 예외가 발생 합니다 Regex.Regex(String, RegexOptions, TimeSpan) 생성자입니다.The RegexMatchTimeoutException exception is thrown if the execution time of the split operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. 생성자를 호출할 때 시간 제한 간격을 설정 하지 않으면, 작업이 있는 응용 프로그램 도메인에 설정 된 제한 시간 값을 초과 하면 예외가 throw 되는 Regex 개체가 만들어집니다.If you do not set a time-out interval when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. 제한 시간에 정의 된 경우는 Regex 생성자 호출 또는 응용 프로그램 도메인의 속성 또는 시간 제한 값이 Regex.InfiniteMatchTimeout, 예외가 throw 되지 않습니다If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown

추가 정보

Split(String) Split(String) Split(String) Split(String)

Regex 생성자에서 지정된 정규식 패턴에 의해 정의된 위치에서 입력 문자열을 부분 문자열의 배열로 분할합니다.Splits an input string into an array of substrings at the positions defined by a regular expression pattern specified in the Regex constructor.

public:
 cli::array <System::String ^> ^ Split(System::String ^ input);
public string[] Split (string input);
member this.Split : string -> string[]
Public Function Split (input As String) As String()

매개 변수

input
String String String String

분할할 문자열입니다.The string to split.

반환

String[]

문자열 배열입니다.An array of strings.

예외

시간이 초과되었습니다.A time-out occurred. 시간 제한에 대한 자세한 내용은 설명 섹션을 참조하세요.For more information about time-outs, see the Remarks section.

설명

합니다 Regex.Split 메서드는 비슷합니다는 String.Split(Char[]) 메서드 Regex.Split 구분 기호 문자 집합이 아니라 정규식에 의해 결정에서 문자열을 분할 합니다.The Regex.Split methods are similar to the String.Split(Char[]) method, except that Regex.Split splits the string at a delimiter determined by a regular expression instead of a set of characters. 문자열 수 만큼 분할 됩니다.The string is split as many times as possible. 구분 기호가 없습니다 있으면 반환 값은 하나의 요소 값은 원래 입력된 문자열을 포함 합니다.If no delimiter is found, the return value contains one element whose value is the original input string.

여러 일치 항목이 서로 인접 한 경우 빈 문자열 배열에 삽입 됩니다.If multiple matches are adjacent to one another, an empty string is inserted into the array. 예를 들어, 단일 하이픈에서 문자열을 분할 하면 반환된 된 배열에 있는 인접 한 하이픈을 두 개 발견 되 면 다음 코드와 같이 위치에 빈 문자열을 포함 합니다.For example, splitting a string on a single hyphen causes the returned array to include an empty string in the position where two adjacent hyphens are found, as the following code shows.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      Regex regex = new Regex("-");         // Split on hyphens.
      string[] substrings = regex.Split("plum--pear");
      foreach (string match in substrings)
      {
         Console.WriteLine("'{0}'", match);
      }
   }
}
// The example displays the following output:
//    'plum'
//    ''
//    'pear'      
Imports System.Text.RegularExpressions

Module RegexSplit
   Public Sub Main()
      Dim regex As Regex = New Regex("-")         ' Split on hyphens.
      Dim substrings() As String = regex.Split("plum--pear")
      For Each match As String In substrings
         Console.WriteLine("'{0}'", match)
      Next
   End Sub
End Module
' The example displays the following output:
'    'plum'
'    ''
'    'pear'      

입력된 문자열의 끝 또는 시작 부분에서 일치 하는 경우 빈 문자열 시작 이나 반환 된 배열의 끝에 포함 됩니다.If a match is found at the beginning or the end of the input string, an empty string is included at the beginning or the end of the returned array. 다음 예제에서는 정규식 패턴 \d+ 숫자에서 입력된 문자열을 분할 합니다.The following example uses the regular expression pattern \d+ to split an input string on numeric characters. 시작 하 고 숫자 문자를 일치 하는 종료 하는 문자열, 반환 된 배열의 첫 번째 및 마지막 요소의 값은 String.Empty합니다.Because the string begins and ends with matching numeric characters, the value of the first and last element of the returned array is String.Empty.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\d+";
      Regex rgx = new Regex(pattern);
      string input = "123ABCDE456FGHIJKL789MNOPQ012";
      
      string[] result = rgx.Split(input);
      for (int ctr = 0; ctr < result.Length; ctr++) {
         Console.Write("'{0}'", result[ctr]);
         if (ctr < result.Length - 1) 
            Console.Write(", ");
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//       '', 'ABCDE', 'FGHIJKL', 'MNOPQ', ''
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\d+"
      Dim rgx As New Regex(pattern)
      Dim input As String = "123ABCDE456FGHIJKL789MNOPQ012"
      
      Dim result() As String = rgx.Split(input)
      For ctr As Integer = 0 To result.Length - 1
         Console.Write("'{0}'", result(ctr))
         If ctr < result.Length - 1 Then Console.Write(", ")
      Next
      Console.WriteLine()
   End Sub               
End Module
' The example displays the following output:
'       '', 'ABCDE', 'FGHIJKL', 'MNOPQ', ''

캡처링 괄호를 사용 하는 경우는 Regex.Split 캡처된 텍스트는 결과 문자열 배열에 포함 된 식입니다.If capturing parentheses are used in a Regex.Split expression, any captured text is included in the resulting string array. 예를 들어, "진한 보라-pear" 하이픈에서 캡처링 괄호 내에서 문자열을 분할 하는 경우 반환된 된 배열에는 하이픈을 포함 하는 문자열 요소를 포함 합니다.For example, if you split the string "plum-pear" on a hyphen placed within capturing parentheses, the returned array includes a string element that contains the hyphen.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      Regex regex = new Regex("(-)");         // Split on hyphens.
      string[] substrings = regex.Split("plum-pear");
      foreach (string match in substrings)
      {
         Console.WriteLine("'{0}'", match);
      }
   }
}
// The example displays the following output:
//    'plum'
//    '-'
//    'pear'      
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim regex As Regex = New Regex("(-)")          ' Split on hyphens.
      Dim substrings() As String = regex.Split("plum-pear")
      For Each match As String In substrings
         Console.WriteLine("'{0}'", match)
      Next
   End Sub
End Module
' The example displays the following output:
'    'plum'
'    '-'
'    'pear'      

그러나 정규식 패턴에서 캡처링 괄호의 여러 집합을 포함 하는 경우이 메서드의 동작은.NET Framework의 버전에 따라 다릅니다.However, when the regular expression pattern includes multiple sets of capturing parentheses, the behavior of this method depends on the version of the .NET Framework. .NET Framework 1.0 및 1.1에서 캡처링 괄호의 첫 번째 집합에 일치 하는 항목이 없는 경우 추가 캡처링 괄호에서 캡처된 텍스트가 포함 되지 않습니다 반환된 된 배열에.In the .NET Framework 1.0 and 1.1, if a match is not found within the first set of capturing parentheses, captured text from additional capturing parentheses is not included in the returned array. .NET Framework 2.0 부터는 모든 캡처된 텍스트에도 추가 됩니다 반환된 된 배열입니다.Starting with the .NET Framework 2.0, all captured text is also added to the returned array. 예를 들어, 다음 코드는 날짜 문자열에서 날짜 구분 기호를 포함 하 여 날짜의 요소를 추출 두 캡처링 괄호를 사용 합니다.For example, the following code uses two sets of capturing parentheses to extract the elements of a date, including the date delimiters, from a date string. 캡처 괄호의 첫 번째 집합 하이픈을 캡처하고 두 번째 집합 슬래시를 캡처합니다.The first set of capturing parentheses captures the hyphen, and the second set captures the forward slash. 예제 코드를 컴파일 및.NET Framework 1.0 또는 1.1에서 실행 하는 경우; 슬래시 문자 제외 이 컴파일 및.NET Framework 2.0 이상 버전에서 실행 하는 경우 이러한 포함 합니다.If the example code is compiled and run under the .NET Framework 1.0 or 1.1, it excludes the slash characters; if it is compiled and run under the .NET Framework 2.0 or later versions, it includes them.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = @"07/14/2007";   
      string pattern = @"(-)|(/)";
      Regex regex = new Regex(pattern);
      foreach (string result in regex.Split(input)) 
      {
         Console.WriteLine("'{0}'", result);
      }
   }
}
// Under .NET 1.0 and 1.1, the method returns an array of
// 3 elements, as follows:
//    '07'
//    '14'
//    '2007'
//
// Under .NET 2.0 and later, the method returns an array of
// 5 elements, as follows:
//    '07'
//    '/'
//    '14'
//    '/'
//    '2007' 
Imports System
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "07/14/2007"   
      Dim pattern As String = "(-)|(/)"
      Dim regex As Regex = New Regex(pattern)
      For Each result As String In regex.Split(input) 
         Console.WriteLine("'{0}'", result)
      Next
   End Sub
End Module
' In .NET 1.0 and 1.1, the method returns an array of
' 3 elements, as follows:
'    '07'
'    '14'
'    '2007'
'
' In .NET 2.0 and later, the method returns an array of
' 5 elements, as follows:
'    '07'
'    '/'
'    '14'
'    '/'
'    '2007' 

정규식에는 빈 문자열이 면과 일치할 수 있으면 Split(String) 모든 위치에 빈 문자열 구분 기호를 찾을 수 있으므로 문자열 단일 문자 문자열 배열로 분할 합니다.If the regular expression can match the empty string, Split(String) will split the string into an array of single-character strings because the empty string delimiter can be found at every location. 예:For example:

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "characters";
      Regex regex = new Regex("");
      string[] substrings = regex.Split(input);
      Console.Write("{");
      for(int ctr = 0; ctr < substrings.Length; ctr++)
      {
         Console.Write(substrings[ctr]);
         if (ctr < substrings.Length - 1)
            Console.Write(", ");
      }
      Console.WriteLine("}");
   }
}
// The example displays the following output:   
//    {, c, h, a, r, a, c, t, e, r, s, }
Imports System.Text.RegularExpressions

Module Main
   Public Sub Main()
      Dim input As String = "characters"
      Dim regex As New Regex("")
      Dim substrings() As String = regex.Split(input)
      Console.Write("{")
      For ctr As Integer = 0 to substrings.Length - 1
         Console.Write(substrings(ctr))
         If ctr < substrings.Length - 1 Then Console.Write(", ")
      Next
      Console.WriteLine("}")
   End Sub
End Module
' The example produces the following output:   
'    {, c, h, a, r, a, c, t, e, r, s, }

반환 된 배열은 배열의 시작과 끝에 빈 문자열을 포함 하는 참고 합니다.Note that the returned array also includes an empty string at the beginning and end of the array.

RegexMatchTimeoutException split 작업의 실행 시간에서 지정한 시간 제한 간격을 초과 하는 경우 예외가 발생 합니다 Regex.Regex(String, RegexOptions, TimeSpan) 생성자입니다.The RegexMatchTimeoutException exception is thrown if the execution time of the split operation exceeds the time-out interval specified by the Regex.Regex(String, RegexOptions, TimeSpan) constructor. 생성자를 호출할 때 시간 제한 간격을 설정 하지 않으면, 작업이 있는 응용 프로그램 도메인에 설정 된 제한 시간 값을 초과 하면 예외가 throw 되는 Regex 개체가 만들어집니다.If you do not set a time-out interval when you call the constructor, the exception is thrown if the operation exceeds any time-out value established for the application domain in which the Regex object is created. 제한 시간에 정의 된 경우는 Regex 생성자 호출 또는 응용 프로그램 도메인의 속성 또는 시간 제한 값이 Regex.InfiniteMatchTimeout, 예외가 throw 되지 않습니다If no time-out is defined in the Regex constructor call or in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown

추가 정보

Split(String, String) Split(String, String) Split(String, String) Split(String, String)

정규식 패턴에 의해 정의된 위치에서 부분 문자열로 이루어진 배열로 입력 문자열을 분할합니다.Splits an input string into an array of substrings at the positions defined by a regular expression pattern.

public:
 static cli::array <System::String ^> ^ Split(System::String ^ input, System::String ^ pattern);
public static string[] Split (string input, string pattern);
static member Split : string * string -> string[]
Public Shared Function Split (input As String, pattern As String) As String()

매개 변수

input
String String String String

분할할 문자열입니다.The string to split.

pattern
String String String String

일치 항목을 찾을 정규식 패턴입니다.The regular expression pattern to match.

반환

String[]

문자열 배열입니다.An array of strings.

예외

정규식 구문 분석 오류가 발생한 경우A regular expression parsing error occurred.

input 또는 patternnull인 경우or pattern is null.

시간이 초과되었습니다.A time-out occurred. 시간 제한에 대한 자세한 내용은 설명 섹션을 참조하세요.For more information about time-outs, see the Remarks section.

설명

합니다 Regex.Split 메서드는 비슷합니다는 String.Split 메서드 Regex.Split 구분 기호 문자 집합이 아니라 정규식에 의해 결정에서 문자열을 분할 합니다.The Regex.Split methods are similar to the String.Split method, except that Regex.Split splits the string at a delimiter determined by a regular expression instead of a set of characters. input 가능한 만큼 문자열을 분할 합니다.The input string is split as many times as possible. 경우 pattern 에 없는 합니다 input 문자열을 반환 값에 포함 한 요소 값은 원래 input 문자열입니다.If pattern is not found in the input string, the return value contains one element whose value is the original input string.

pattern 상징적으로 일치 하는 문자열을 설명 하는 정규식 언어 요소의 매개 변수를 구성 합니다.The pattern parameter consists of regular expression language elements that symbolically describe the string to match. 정규식에 대 한 자세한 내용은 참조 하세요. .NET Framework 정규식 하 고 정규식 언어-빠른 참조합니다.For more information about regular expressions, see .NET Framework Regular Expressions and Regular Expression Language - Quick Reference.

중요

정적 호출에 사용 된 정규식 컴파일 Split 메서드 자동으로 캐시 됩니다.Compiled regular expressions used in calls to static Split methods are automatically cached. 컴파일된 정규식의 수명을 직접 관리 하려면 인스턴스를 사용 하 여 Split 메서드.To manage the lifetime of compiled regular expressions yourself, use the instance Split methods.

여러 일치 항목이 서로 인접 한 경우 빈 문자열 배열에 삽입 됩니다.If multiple matches are adjacent to one another, an empty string is inserted into the array. 예를 들어, 단일 하이픈에서 문자열을 분할 하면 반환된 된 배열에 있는 인접 한 하이픈을 두 개 발견 되 면 다음 코드와 같이 위치에 빈 문자열을 포함 합니다.For example, splitting a string on a single hyphen causes the returned array to include an empty string in the position where two adjacent hyphens are found, as the following code shows.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "plum--pear";
      string pattern = "-";            // Split on hyphens
      
      string[] substrings = Regex.Split(input, pattern);
      foreach (string match in substrings)
      {
         Console.WriteLine("'{0}'", match);
      }
   }
}
// The method displays the following output:
//    'plum'
//    ''
//    'pear'      
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "plum--pear"
      Dim pattern As String = "-"          ' Split on hyphens
      
      Dim substrings() As String = Regex.Split(input, pattern)
      For Each match As String In substrings
         Console.WriteLine("'{0}'", match)
      Next
   End Sub  
End Module
' The example displays the following output:
'    'plum'
'    ''
'    'pear'      

입력된 문자열의 끝 또는 시작 부분에서 일치 하는 경우 빈 문자열 시작 이나 반환 된 배열의 끝에 포함 됩니다.If a match is found at the beginning or the end of the input string, an empty string is included at the beginning or the end of the returned array. 다음 예제에서는 정규식 패턴 \d+ 숫자에서 입력된 문자열을 분할 합니다.The following example uses the regular expression pattern \d+ to split an input string on numeric characters. 시작 하 고 숫자 문자를 일치 하는 종료 하는 문자열, 반환 된 배열의 첫 번째 및 마지막 요소의 값은 String.Empty합니다.Because the string begins and ends with matching numeric characters, the value of the first and last element of the returned array is String.Empty.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string pattern = @"\d+";
      string input = "123ABCDE456FGHIJKL789MNOPQ012";
      string[] result = Regex.Split(input, pattern);
      for (int ctr = 0; ctr < result.Length; ctr++) {
         Console.Write("'{0}'", result[ctr]);
         if (ctr < result.Length - 1) 
            Console.Write(", ");
      }
      Console.WriteLine();
   }
}
// The example displays the following output:
//       '', 'ABCDE', 'FGHIJKL', 'MNOPQ', ''
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim pattern As String = "\d+"
      Dim input As String = "123ABCDE456FGHIJKL789MNOPQ012"
      Dim result() As String = Regex.Split(input, pattern)
      For ctr As Integer = 0 To result.Length - 1
         Console.Write("'{0}'", result(ctr))
         If ctr < result.Length - 1 Then Console.Write(", ")
      Next
      Console.WriteLine()
   End Sub               
End Module
' The example displays the following output:
'       '', 'ABCDE', 'FGHIJKL', 'MNOPQ', ''

캡처링 괄호를 사용 하는 경우는 Regex.Split 캡처된 텍스트는 결과 문자열 배열에 포함 된 식입니다.If capturing parentheses are used in a Regex.Split expression, any captured text is included in the resulting string array. 예를 들어, "진한 보라-pear" 하이픈에서 캡처링 괄호 내에서 문자열을 분할 하는 경우 반환된 된 배열에는 하이픈을 포함 하는 문자열 요소를 포함 합니다.For example, if you split the string "plum-pear" on a hyphen placed within capturing parentheses, the returned array includes a string element that contains the hyphen.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "plum-pear";
      string pattern = "(-)";

      string[] substrings = Regex.Split(input, pattern);    // Split on hyphens
      foreach (string match in substrings)
      {
         Console.WriteLine("'{0}'", match);
      }
   }
}
// The example displays the following output:
//    'plum'
//    '-'
//    'pear'      
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "plum-pear"
      Dim pattern As String = "(-)" 
      
      Dim substrings() As String = Regex.Split(input, pattern)    ' Split on hyphens.
      For Each match As String In substrings
         Console.WriteLine("'{0}'", match)
      Next
   End Sub
End Module
' The method writes the following to the console:
'    'plum'
'    '-'
'    'pear'      

그러나 정규식 패턴에서 캡처링 괄호의 여러 집합을 포함 하는 경우이 메서드의 동작은.NET Framework의 버전에 따라 다릅니다.However, when the regular expression pattern includes multiple sets of capturing parentheses, the behavior of this method depends on the version of the .NET Framework. .NET Framework 1.0 및 1.1에서 캡처링 괄호의 첫 번째 집합에 일치 하는 항목이 없는 경우 추가 캡처링 괄호에서 캡처된 텍스트가 포함 되지 않습니다 반환된 된 배열에.In the .NET Framework 1.0 and 1.1, if a match is not found within the first set of capturing parentheses, captured text from additional capturing parentheses is not included in the returned array. .NET Framework 2.0 부터는 모든 캡처된 텍스트에도 추가 됩니다 반환된 된 배열입니다.Starting with the .NET Framework 2.0, all captured text is also added to the returned array. 예를 들어, 다음 코드는 날짜 문자열에서 날짜 구분 기호를 포함 하 여 날짜의 요소를 추출 두 캡처링 괄호를 사용 합니다.For example, the following code uses two sets of capturing parentheses to extract the elements of a date, including the date delimiters, from a date string. 캡처 괄호의 첫 번째 집합 하이픈을 캡처하고 두 번째 집합 슬래시를 캡처합니다.The first set of capturing parentheses captures the hyphen, and the second set captures the forward slash. 예제 코드를 컴파일 및.NET Framework 1.0 또는 1.1에서 실행 하는 경우; 슬래시 문자 제외 이 컴파일 및.NET Framework 2.0 이상 버전에서 실행 하는 경우 이러한 포함 합니다.If the example code is compiled and run under the .NET Framework 1.0 or 1.1, it excludes the slash characters; if it is compiled and run under the .NET Framework 2.0 or later versions, it includes them.

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = @"07/14/2007";   
      string pattern = @"(-)|(/)";

      foreach (string result in Regex.Split(input, pattern)) 
      {
         Console.WriteLine("'{0}'", result);
      }
   }
}
// In .NET 1.0 and 1.1, the method returns an array of
// 3 elements, as follows:
//    '07'
//    '14'
//    '2007'
//
// In .NET 2.0 and later, the method returns an array of
// 5 elements, as follows:
//    '07'
//    '/'
//    '14'
//    '/'
//    '2007' 
Imports System
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "07/14/2007"   
      Dim pattern As String = "(-)|(/)"
      For Each result As String In Regex.Split(input, pattern) 
         Console.WriteLine("'{0}'", result)
      Next
   End Sub
End Module
' In .NET 1.0 and 1.1, the method returns an array of
' 3 elements, as follows:
'    '07'
'    '14'
'    '2007'
'
' In .NET 2.0 and later, the method returns an array of
' 5 elements, as follows:
'    '07'
'    '/'
'    '14'
'    '/'
'    '2007' 

정규식에는 빈 문자열이 면과 일치할 수 있으면 Split 모든 위치에 빈 문자열 구분 기호를 찾을 수 있으므로 문자열 단일 문자 문자열 배열로 분할 합니다.If the regular expression can match the empty string, Split will split the string into an array of single-character strings because the empty string delimiter can be found at every location. 예:For example:

using System;
using System.Text.RegularExpressions;

public class Example
{
   public static void Main()
   {
      string input = "characters";
      string[] substrings = Regex.Split(input, "");
      Console.Write("{");
      for(int ctr = 0; ctr < substrings.Length; ctr++)
      {
         Console.Write("'{0}'", substrings[ctr]);
         if (ctr < substrings.Length - 1)
            Console.Write(", ");
      }
      Console.WriteLine("}");
   }
}
// The example produces the following output:   
//    {'', 'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r', 's', ''}
Imports System.Text.RegularExpressions

Module Example
   Public Sub Main()
      Dim input As String = "characters"
      Dim substrings() As String = Regex.Split(input, "")
      Console.Write("{")
      For ctr As Integer = 0 to substrings.Length - 1
         Console.Write("'{0}'", substrings(ctr))
         If ctr < substrings.Length - 1 Then Console.Write(", ")
      Next
      Console.WriteLine("}")
   End Sub
End Module
' The example produces the following output:   
'    {'', 'c', 'h', 'a', 'r', 'a', 'c', 't', 'e', 'r', 's', ''}

반환 된 배열은 배열의 시작과 끝에 빈 문자열을 포함 하는 참고 합니다.Note that the returned array also includes an empty string at the beginning and end of the array.

RegexMatchTimeoutException split 작업의 실행 시간이 메서드가 호출 되는 응용 프로그램 도메인에 대 한 지정 된 시간 제한 간격을 초과 하는 경우 예외가 throw 됩니다.The RegexMatchTimeoutException exception is thrown if the execution time of the split operation exceeds the time-out interval specified for the application domain in which the method is called. 시간 제한이 없으며 응용 프로그램 도메인의 속성에 정의 된 제한 시간 값이 아니면 Regex.InfiniteMatchTimeout, 예외가 throw 되지 않습니다.If no time-out is defined in the application domain's properties, or if the time-out value is Regex.InfiniteMatchTimeout, no exception is thrown.

호출자 참고

이 메서드는 메서드가 호출 되는 응용 프로그램 도메인의 기본 제한 시간 값에 해당 간격이 지난 후 시간이 합니다.This method times out after an interval that is equal to the default time-out value of the application domain in which the method is called. 응용 프로그램 도메인에 값에 대 한 제한 시간 값을 정의 되지 않은 경우 InfiniteMatchTimeout, 메서드 시간 초과 방지 하는는 데 사용 됩니다.If a time-out value has not been defined for the application domain, the value InfiniteMatchTimeout, which prevents the method from timing out, is used. 패턴 일치에 텍스트를 분할 하는 것에 대 한 권장 되는 정적 메서드는 Split(String, String, RegexOptions, TimeSpan), 시간 제한 간격을 설정할 수 있습니다.The recommended static method for splitting text on a pattern match is Split(String, String, RegexOptions, TimeSpan), which lets you set the time-out interval.

추가 정보

적용 대상