我必须删除字符串中的所有零,但我必须保留数字中的零。
我收到的字符串采用类似于“零字母零数字”的格式,没有“-”并且数字始终是整数。几个例子:
"0A055" -> "A55"
"0A050" -> "A50"
"0A500" -> "A500"
"0A0505" -> "A505"
"0055" -> "55"
"0505" -> "505"
"0050" -> "50"
我知道我可以遍历字符串中的字符并在遇到不同于 0 的字母或数字时设置一个标志,但我认为使用 RegEx 会更好。如果我必须在数据库中使用此算法,RegEx 也会更有帮助。
我试过类似的方法,但没有得到我想要的结果:
Regex r = new Regex(@"[0*([a-zA-Z]*)0*([1-9]*)]");
string result = r.Replace(input, "");
我不太擅长编写 RegEx-es,如果可以请帮助我。
最佳答案
我不相信正则表达式是解决这个问题的最佳方式,但这个适用于您所有的测试用例:
string clean = Regex.Replace(dirty, @"(?<!\d)0+|0+(?!\d|$)", "");
关于c# - 删除除数字以外的所有零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6912228/