2012-05-02 65 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个子字符串。