2016-07-20 49 views
0

我試圖找到一種方法來分割字符串的字母和數字,但我有運氣。將文本和整數分割成數組/列表

一個例子: 我有一個字符串"AAAA000343BBB343"

我要麼需要將其分割成2個值"AAAA000343""BBB343"或成4 "AAAA""000343""BBB""343"

任何幫助將不勝感激

感謝

+2

正則表達式是在這裏你的朋友。 –

+1

到目前爲止您嘗試過什麼?分享你的工作,我們可以從那裏幫助..你不只是想要一個解決方案,但有一些幫助,對吧? –

+0

你能解釋更多關於拆分嗎?你如何決定在哪裏拆分? – elyashiv

回答

3

這裏是一個RegEx方法的字符串分割成4個值

string input = "AAAA000343BBB343"; 
string[] result = Regex.Matches(input, @"[a-zA-Z]+|\d+") 
         .Cast<Match>() 
         .Select(x => x.Value) 
         .ToArray(); //"AAAA" "000343" "BBB" "343" 
+0

謝謝!這工作完全謝謝:)我真的需要更多地研究正則表達式 –

2

所以,你可以使用regex

對於

「AAAA000343」 和 「BBB343」

var regex = new Regex(@"[a-zA-Z]+\d+"); 
var result = regex 
       .Matches("AAAA000343BBB343") 
       .Cast<Match>() 
       .Select(x => x.Value); 

// result outputs: "AAAA000343" and "BBB343" 

對於

4 「AAAA」, 「000343」, 「BBB」, 「343」

見@fubo回答

-1

試試這個:

var numAlpha = new Regex("(?<Alpha>[a-zA-Z]*)(?<Numeric>[0-9]*)"); 
var match = numAlpha.Match("codename123"); 

var Character = match.Groups["Alpha"].Value; 
var Integer = match.Groups["Numeric"].Value; 
+0

這隻會搶的字母和數字,不能同時第一個實例。你應該用提供的數據來代替'codename123'。儘管如此,很好地使用了命名捕獲。 – Bobson