修剪数字功能

时间:2012-05-02 15:02:58

标签: c# regex trim

我需要修剪包含该数字的字符串的最后一部分。 另外,我需要修剪不以零开始的部分

这就是我正在做的事情,我没有包括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

我怎样才能实现它?我的功能没有这样做

2 个答案:

答案 0 :(得分: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"
    

答案 1 :(得分:0)

如果您想要破解的点始终为零,您可以使用string.IndexOf()找到该位置。然后,您可以使用该索引将字符串分解为2个子字符串。