Regex.Split 方法
定義
重要
部分資訊涉及發行前產品,在發行之前可能會有大幅修改。 Microsoft 對此處提供的資訊,不做任何明確或隱含的瑕疵擔保。
將輸入字串拆分為由正則表達式匹配定義的位置的子字串陣列。
多載
| 名稱 | Description |
|---|---|
| Split(String, String, RegexOptions, TimeSpan) |
將輸入字串分割成指定正則表示式模式所定義位置的子字串陣列。 其他參數會指定修改比對作業的選項,如果找不到相符專案,則會指定超時時間間隔。 |
| Split(String, String, RegexOptions) |
將輸入字串分割成指定正則表示式模式所定義位置的子字串陣列。 指定的選項會修改比對作業。 |
| Split(String, Int32, Int32) |
將輸入字串以指定次數分拆成子串陣列,位置由建構子指定 Regex 的正則表達式定義。 正則表達式模式的搜尋會從輸入字串中的指定字元位置開始。 |
| Split(String, String) |
將輸入字串分割成正則表示式模式所定義位置的子字串陣列。 |
| Split(String) |
將輸入字串拆分為由建構子指定 Regex 正則表達式模式定義的位置的子串陣列。 |
| Split(String, Int32) |
將輸入字串以指定次數分拆成子串陣列,位置由建構子指定 Regex 的正則表達式定義。 |
Split(String, String, RegexOptions, TimeSpan)
將輸入字串分割成指定正則表示式模式所定義位置的子字串陣列。 其他參數會指定修改比對作業的選項,如果找不到相符專案,則會指定超時時間間隔。
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
那條要分開的線。
- pattern
- String
要比對的正則表達式模式。
- options
- RegexOptions
列舉值的位元組合,提供比對的選項。
- matchTimeout
- TimeSpan
一個逾時區間,或 InfiniteMatchTimeout 表示方法不應逾時。
傳回
字串的陣列。
例外狀況
發生正則表達式剖析錯誤。
input 或 pattern 為 null。
options 不是有效的位元組合 RegexOptions 。
-或- matchTimeout 為負性、零或大於約24天。
備註
靜態 Split(String, String, RegexOptions, TimeSpan) 方法等同於用指定的正則表達式模式建構一個 Regex 物件,然後呼叫實例方法 Split(String)。
Regex.Split 的方法與此Split(Char[])方法相似,不同之處在於 Regex.Split 將字串分割為由正則表達式決定的分隔符,而非一組字元。 若正則表達式模式包含擷取括號,擷取的文字會包含在結果的字串陣列中。 若模式包含捕捉括號,則任何擷取的文字會被納入字串陣列,但在判斷是否達到計數限制時不會被計入。
若找到兩個相鄰的匹配,陣列中會放置空字串。
如果你指定 RightToLeft 參數, options 搜尋匹配會從輸入字串的末尾開始,向左移動。
參數 matchTimeout 指定模式匹配方法在逾時前應該嘗試尋找匹配的時間。 matchTimeout 覆蓋該方法執行的應用程式域中預設的任何逾時值。
給呼叫者的注意事項
我們建議你將參數設定 matchTimeout 為適當的值,例如兩秒。 如果你指定 InfiniteMatchTimeout,則會讓 停止,正則表達式引擎的效能會稍微好一點。 不過,您應該只在下列情況下停用逾時:
正則表達式所處理的輸入衍生自已知且受信任的來源,或包含靜態文字時。 這會排除使用者動態輸入的文字。
當正則表達式模式經過徹底測試,以確保其有效率地處理相符專案、不相符專案和接近相符專案時。
當正則表達式模式不包含任何已知在處理接近相符專案時造成過度回溯的語言元素。
另請參閱
適用於
Split(String, String, RegexOptions)
將輸入字串分割成指定正則表示式模式所定義位置的子字串陣列。 指定的選項會修改比對作業。
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
那條要分開的線。
- pattern
- String
要比對的正則表達式模式。
- options
- RegexOptions
列舉值的位元組合,提供比對的選項。
傳回
字串的陣列。
例外狀況
發生正則表達式剖析錯誤。
input 或 pattern 為 null。
options 不是有效的位元組合 RegexOptions 。
備註
靜態 Split(String, String, RegexOptions) 方法等同於用指定的正則表達式模式建構一個 Regex 物件,然後呼叫實例方法 Split(String)。
Regex.Split 的方法與此Split(Char[])方法相似,不同之處在於 Regex.Split 將字串分割為由正則表達式決定的分隔符,而非一組字元。 若正則表達式模式包含擷取括號,擷取的文字會包含在結果的字串陣列中。 若模式包含捕捉括號,則任何擷取的文字會被納入字串陣列,但在判斷是否達到計數限制時不會被計入。
若找到兩個相鄰的匹配,陣列中會放置空字串。
如果你指定 RightToLeft 參數, options 搜尋匹配會從輸入字串的末尾開始,向左移動。
給呼叫者的注意事項
此方法在等於該方法所呼叫的應用域預設逾時值的區間後,逾時結束。 若應用程式域尚未定義逾時值,則使用阻止方法逾時的值 InfiniteMatchTimeout。 在模式匹配 Split(String, String, RegexOptions, TimeSpan)中,建議的靜態分割文字方法是 ,這可以讓你設定逾時間隔。
另請參閱
適用於
Split(String, Int32, Int32)
將輸入字串以指定次數分拆成子串陣列,位置由建構子指定 Regex 的正則表達式定義。 正則表達式模式的搜尋會從輸入字串中的指定字元位置開始。
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
那條要分開的線。
- count
- Int32
分裂最多可發生的次數。
- startat
- Int32
輸入字串中開始搜尋的字元位置。
傳回
字串的陣列。
例外狀況
input 是 null。
startat 小於零或大於 的 input長度。
備註
欲了解更多詳情 startat,請參閱 的 Match(String, Int32)備註區。
若在表達式中使用捕捉括號,任何擷取的文字會包含在結果字串陣列中,但不會計入極 count 限。
在判斷匹配數量是否達到 count時,計算來自相鄰匹配的空字串。
另請參閱
適用於
Split(String, String)
將輸入字串分割成正則表示式模式所定義位置的子字串陣列。
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
那條要分開的線。
- pattern
- String
要比對的正則表達式模式。
傳回
字串的陣列。
例外狀況
發生正則表達式剖析錯誤。
input 或 pattern 為 null。
備註
靜態 Split(String, String) 方法等同於用指定的正則表達式模式建構一個 Regex 物件,然後呼叫實例方法 Split(String)。
Regex.Split 的方法與此Split(Char[])方法相似,不同之處在於 Regex.Split 將字串分割為由正則表達式決定的分隔符,而非一組字元。 若正則表達式模式包含擷取括號,擷取的文字會包含在結果的字串陣列中。 若模式包含捕捉括號,則任何擷取的文字會被納入字串陣列,但在判斷是否達到計數限制時不會被計入。
若找到兩個相鄰的匹配,陣列中會放置空字串。
給呼叫者的注意事項
此方法在等於該方法所呼叫的應用域預設逾時值的區間後,逾時結束。 若應用程式域尚未定義逾時值,則使用阻止方法逾時的值 InfiniteMatchTimeout。 在模式匹配 Split(String, String, RegexOptions, TimeSpan)中,建議的靜態分割文字方法是 ,這可以讓你設定逾時間隔。
另請參閱
適用於
Split(String)
將輸入字串拆分為由建構子指定 Regex 正則表達式模式定義的位置的子串陣列。
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
那條要分開的線。
傳回
字串的陣列。
例外狀況
input 是 null。
備註
Regex.Split 的方法與此Split(Char[])方法相似,不同之處在於 Regex.Split 將字串分割為由正則表達式決定的分隔符,而非一組字元。 繩子會盡可能多次被分開。 若未找到匹配,回傳值中包含一個元素,其值為原始輸入字串。
如果正則表達式能匹配空字串, Split(String) 則會將字串拆分成單字元字串陣列,因為空字串分隔符可在每個位置找到。
若在表達式中使用捕捉括號,任何擷取的文字都會包含在結果的字串陣列中。
若找到兩個相鄰的匹配,陣列中會放置空字串。
另請參閱
適用於
Split(String, Int32)
將輸入字串以指定次數分拆成子串陣列,位置由建構子指定 Regex 的正則表達式定義。
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
那條要分開的線。
- count
- Int32
分裂最多可發生的次數。
傳回
字串的陣列。
例外狀況
input 是 null。
備註
正則表達式.Split方法與 Split(Char[])類似。 參數 count 指定輸入字串可分割的最大子字串數量;最後一個字串包含未拆分的字串剩餘部分。
count值為零則預設會盡可能多次分割。
若在表達式中使用捕捉括號,任何擷取的文字會包含在結果字串陣列中,但不會計入極 count 限。
在判斷匹配數量是否達到 count時,計算來自相鄰匹配的空字串。