c# - 删除除数字以外的所有零

标签 c# regex

我必须删除字符串中的所有零,但我必须保留数字中的零。

我收到的字符串采用类似于“零字母零数字”的格式,没有“-”并且数字始终是整数。几个例子:

"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/

相关文章:

c# - Visual Studio 2010 - 无法单步执行 .NET Framework 4 源 (PresentationCore.dll)

c# - 从命令行发布 WPF 项目

php - 根据字母后跟数字拆分字符串

c# - 将 2 个列表与 foreach 循环进行比较,并根据未找到的项目创建新列表

c# - 如何了解 Windows 10 周年更新或更高版本是否在 WPF 应用程序中使用其浅色或深色主题?

regex - sbt-scoverage 排除语法

regex - 如何使用 Regex 在 Bash 中查找递归子字符串?

JSON 中 15 个字符的字母数字字符的正则表达式

string::find 的 C++ 正则表达式等价物

c# - 如何在 ASP MVC 中将数据传递到共享 View ?