【问题标题】:Trim number function修剪数字功能
【发布时间】:2012-05-02 15:02:58
【问题描述】:

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

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

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

【问题讨论】:

  • 你有更多关于输入字符串的例子吗?仅给出一个示例很难提供(好的)解决方案。

标签: c# regex trim


【解决方案1】:

让我们一步一步看正则表达式:

  • 以数字开头,但不为零:[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 很好的答案和解释。但是我会丢失 foreach 并假设它只会匹配一次或零次。
【解决方案2】:

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

【讨论】:

    猜你喜欢
    • 2016-12-11
    • 2017-01-08
    • 2020-08-19
    • 1970-01-01
    • 2014-08-16
    • 1970-01-01
    • 2011-07-12
    • 2011-12-20
    • 1970-01-01
    相关资源
    最近更新 更多