【问题标题】:How to remove initial numeric characters from a string in C#?如何从 C# 中的字符串中删除初始数字字符?
【发布时间】:2015-06-13 06:02:38
【问题描述】:

如何使用正则表达式从字符串中删除第一个数字字符? 字符串 str = 20Be45;

输出 -> Be45

【问题讨论】:

  • 您也删除了第二个数字字符。
  • 是的,这就是我要找的。 (初始数字字符)

标签: c# regex


【解决方案1】:

这是正则表达式

string text = "20Be45";
string replaced = Regex.Replace(text, "^[0-9]+", string.Empty);

但是,我编程了 15 年没有使用正则表达式,你知道吗?我很高兴,我的程序有效

int i = 0;

while (i < text.Length && text[i] >= '0' && text[i] <= '9')
{
    i++;
}

text = text.Substring(i);

【讨论】:

  • char.IsNumber 还是 char.IsDigit?
  • @JamesBarrass char.IsDigit 可能更好......但我很老派,所以我仍然使用 >= '0'
  • 对我来说太老套了,我的编程年限和你差不多……正则表达式是处理这类事情的更好方法。
  • @ZoharPeled C 不包含正则表达式... C++ 直到几年前才包含。 VB 6 没有。然后是另一个“分支”(Perl/PHP/Python)。
【解决方案2】:

这是使用String.TrimStart 方法的另一种解决方案:

string text = "20Be45";
string replaced = text.TrimStart('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');

【讨论】:

  • 这是我对这个问题的首选解决方案。
【解决方案3】:

另一个非正则表达式版本:

var text = "20Be45";
var result = string.Concat(text.SkipWhile(char.IsDigit));

【讨论】:

    猜你喜欢
    • 2013-12-31
    • 2011-10-15
    • 2022-01-09
    • 2011-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多