簡體   English   中英

正則表達式/字符串拆分

[英]Regular Expression/String split

我對RegEx的了解不如預期。 但是,我正在尋找一個匹配值變體的表達式。

我有一個值列表(總共約30k):

ABCD1234
EF56789
GH123456J
GH123456JK
LMN654987P

我需要能夠將前面的字母,中間的數字和結尾的字母分成3個不同的變量。 值的開頭有不確定的字符數量,中間的數字不確定數量,末尾的字母不確定數量。

任何幫助表示贊賞。

您可以將正則表達式與這樣的捕獲組一起使用,而不是拆分:

([A-Z]+)([0-9]+)([A-Z]*)

工作演示

另外,如果要將字符串區分大小寫,可以使用i標志。

工作演示

比賽信息:

MATCH 1
1.  [0-4]   `ABCD`
2.  [4-8]   `1234`
3.  [8-8]   ``
MATCH 2
1.  [9-11]  `EF`
2.  [11-16] `56789`
3.  [16-16] ``
MATCH 3
1.  [17-19] `GH`
2.  [19-25] `123456`
3.  [25-26] `J`
MATCH 4
1.  [27-29] `GH`
2.  [29-35] `123456`
3.  [35-37] `JK`
MATCH 5
1.  [38-41] `LMN`
2.  [41-47] `654987`
3.  [47-48] `P`

此外,如果您不希望包含空白內容,則可以使用此正則表達式:

([a-z]+)([0-9]+)([a-z]+)?

您可以簡單地遍歷每行並使用整個數字塊作為分隔符來拆分它們。

當您在用於標識分隔符的正則表達式中包含捕獲組時,分隔符將包含在返回的數組中。

string[] substrings = Regex.Split(originalString, @"([0-9]+)")

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM