【发布时间】:2015-06-13 06:02:38
【问题描述】:
如何使用正则表达式从字符串中删除第一个数字字符? 字符串 str = 20Be45;
输出 -> Be45
【问题讨论】:
-
您也删除了第二个数字字符。
-
是的,这就是我要找的。 (初始数字字符)
如何使用正则表达式从字符串中删除第一个数字字符? 字符串 str = 20Be45;
输出 -> Be45
【问题讨论】:
这是正则表达式
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.IsDigit 可能更好......但我很老派,所以我仍然使用 >= '0'
这是使用String.TrimStart 方法的另一种解决方案:
string text = "20Be45";
string replaced = text.TrimStart('0', '1', '2', '3', '4', '5', '6', '7', '8', '9');
【讨论】:
另一个非正则表达式版本:
var text = "20Be45";
var result = string.Concat(text.SkipWhile(char.IsDigit));
【讨论】: