我试过像[1-9] [0-9] + [^(00)]这样的东西。但它没有部分发挥作用。
以下是一个例子:
000000001321054000456400
输出:13210540004564
输入:0000000013210540004564000
输出:132105400045640
输入:0000000013210540004564
13210540004564
请您提供解决方案的说明。
答案 0 :(得分:3)
您可以使用
s = s.replaceFirst("^0*([1-9]\\d*?)(?:00)?$", "$1");
请参阅regex demo
<强>详情
^
- 字符串开头0*
- 领先0
s ([1-9]\\d*?)
- 第1组(后来用替换模式中的$1
引用):从1
到9
的数字,然后是0到0之间的任何数字可能(延迟量词使下一个可选模式能够在字符串中的适当位置进行尝试)(?:00)?
- 可选的00
子字符串$
- 字符串结束。