Java Regex用于删除分隔字符串中的所有前导零

时间:2012-12-27 01:21:31

标签: java regex

我有字符串" 08,09,10,11"我想" 8,9,10,11"即剥去所有前导零。

正则表达式

"08,09,10,11".replaceAll("^0+(?!$)", "")

很接近,但给了我' 8,09,10,11' (即9上的零点没有被剥离。

任何人都有正则表达式我可以用来做我需要的东西吗?

3 个答案:

答案 0 :(得分:5)

这将有效:

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

答案 1 :(得分:4)

我认为这会奏效:

str.replaceAll("(?<!\d)0+(?=\d+)", "");

以下是一些测试:http://fiddle.re/rp57

答案 2 :(得分:2)

这里提到两种方法的不同之处:

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

"0001000" ----> "1000"
"0000000" ----> ""


replaceAll("^0+(?!$)", "")

"0001000" ----> "1000"
"0000000" ----> "0"

(?!$)是一个所谓的负前瞻,它会查找字符串的结尾,并且不会删除“0”后跟字符串的结尾。因此,如果前导零也是字符串的最后一个字符,则不会被删除