2010-03-02 35 views
10

如何將字符串(如「Mar10」)拆分爲C#中的「Mar」和「10」?字符串的格式將始終是字母和數字,因此我可以使用數字的第一個實例作爲分隔字符串的指示符。如何在C#中根據字母和數字拆分字符串

+1

你並不總是隻有三個字,是嗎? Dec12,Jan5,Jul17 ... – tanascius 2010-03-02 09:44:57

+0

是的,在這種情況下,我這樣做。日期3字符,年份2字符。 – Addie 2010-03-05 17:56:06

回答

14

你可以這樣做:

var match = Regex.Match(yourString, "(\w+)(\d+)"); 
var month = match.Groups[0].Value; 
var day = int.Parse(match.Groups[1].Value); 
3
char[] array = "Mar10".ToCharArray(); 
int index = 0; 
for(int i=0;i<array.Length;i++) 
{ 
    if (Char.IsNumber(array[i]){ 
     index = i; 
     break; 
    } 
} 

指數將表明分裂立場。

5

你不是直接說出來的,但從你的例子看來,你只是試圖解析一個日期。

如果這是真的,這個怎麼樣的解決方案:

DateTime date; 
if(DateTime.TryParseExact("Mar10", "MMMdd", new CultureInfo("en-US"), DateTimeStyles.None, out date)) 
{ 
    Console.WriteLine(date.Month); 
    Console.WriteLine(date.Day); 
} 
1
var match = Regex.Match(yourString, "([|A-Z|a-z| ]*)([\d]*)"); 
var month = match.Groups[1].Value; 
var day = int.Parse(match.Groups[2].Value); 

我試圖康拉德的回答以上,但是當我進入它變成RegexPlanet它也不太工作。 Groups[0]也返回整個字符串Mar10。你想從Groups[1]開始,它應該返回MarGroups[2]應該返回10

相關問題