2016-02-10 55 views
-5

我有一個字符串包含文本「AA55BB10CC1DD10E123」。我必須拆分字符串並將其放置在List中作爲文本/值字段,如在C中拆分字符串#

AA | 55

BB | 10

CC | 1

DD | 10

E | 123個

感謝

+1

什麼是你的分割標準是什麼?任何數字後跟任意數字的數字? –

+2

你試過了什麼? – lintmouse

+7

歡迎來到StackOverflow!我們不是代碼寫作服務。雖然我們很樂意協助您解決*特定問題,但請告訴我們您迄今爲止所寫的內容以及您遇到的具體問題。閱讀[我如何提出一個好問題?](http://stackoverflow.com/help/how-to-ask)以獲取更多詳細信息。 –

回答

1

使用我的魔晶球,我已經確定這是你要找的答案!

string[] split = Regex.Matches("AA55BB10CC1DD10E123", @"[A-Z]+\d+") 
    .Cast<Match>() 
    .Select(x => Regex.Match(x.Value, @"[A-Z]+").Value + "|" + Regex.Match(x.Value, @"\d+").Value).ToArray(); 
0

請嘗試顯示你已經嘗試過,這就是你在尋找我認爲。

List<string> split = Regex("[A-Z]{1}[a-z0-9]*"); 
    split= reg.Matches(InputText).Cast<Match>().Select(m => m.Value).ToList(); 
+0

沒有理由在第一行代碼中實例化列表,如果你打算在第3行把它扔掉。 – itsme86

+0

這就是非常正確,它更多的是使用正則表達式來分割。 –

2
string text = "AA55BB10CC1DD10E123"; 
var letters = Regex.Split(text,@"\d").Where(t => !string.IsNullOrEmpty(t)); 
var digits = Regex.Split(text, @"[A-Z]").Where(t => !string.IsNullOrEmpty(t)); 
var myList = letters.Zip(digits, (l, d) => new {l,d});