正则表达式,用于去除被视为字符串的前导零

2022-09-02 02:18:48

我有这样的数字需要删除前导零。

这是我需要的:

00000004334300343 -> 4334300343

0003030435243 -> 3030435243

我无法弄清楚这一点,因为我是正则表达式的新手。这不起作用:

(^0)

答案 1

你快到了。你只需要量词:

str = str.replaceAll("^0+", "");

它替换 1 次或多次出现 0(这就是量词的用途。类似地,我们有量词,意思是0或更多),在字符串的开头(由插入符号给出 - ),带有空字符串。+*^


答案 2

如果需要从“00”中获取“0”,则接受的解决方案将失败。这是正确的一个:

str = str.replaceAll("^0+(?!$)", "");

^0+(?!$)表示 如果字符串后面没有结尾,则表示匹配一个或多个零。

感谢评论者 - 我已经更新了公式以匹配作者的描述。