2012-05-02 103 views
0

我需要修剪包含數字的字符串的最後部分。 此外,我需要修剪的部分不是從零開始修剪數字功能

這就是我正在做的,我沒有包括0,因爲我不知道如何忽略它,如果數字以零。

 textBox13.Text = "A14C0681414010"; 
     //textBox13.Text = "A14C1381414010"; numbers will vary 
     var first = textBox13.Text.TrimEnd("123456789".ToCharArray()); 
     var last = textBox13.Text.Substring(first.Length); 
     // part 1 should contain A14C0 
     // part 2 should contain 681414010 

我該如何實現它?我的功能不會做

+3

你有問題嗎? – SimpleVar

+3

你有更多的輸入字符串的例子嗎?僅提供一個示例時很難提供(良好)解決方案。 – Jacco

回答

5

讓我們通過正則表達式一步一步:

  • 以數字開頭,但不是零:[1-9]
  • 隨後的數字任意數量(包括零) :[0-9]*(或縮寫:\d*
  • 後面跟着「行尾」(只得到「最後部分」):$

    var input = "A14C0681414010"; 
    foreach (Match m in Regex.Matches(input, "[1-9][0-9]*$")) { 
        Console.WriteLine("Found: " + m.Value); 
    } 
    
    // Outputs "Found: 681414010" 
    
+0

+1很好的回答和解釋。但是,我會失去foreach,並認爲它只會匹配一次或零次。 – SimpleVar

0

如果總是會有你想打破你可以發現,使用string.IndexOf()的位置點零。然後,您可以使用該索引將字符串分解爲2個子字符串。