Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/316.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java正则表达式,用于去除分隔字符串中的所有前导零_Java_Regex - Fatal编程技术网

Java正则表达式,用于去除分隔字符串中的所有前导零

Java正则表达式,用于去除分隔字符串中的所有前导零,java,regex,Java,Regex,我有字符串“08,09,10,11”,我想要“8,9,10,11”,即去掉所有前导零 正则表达式 "08,09,10,11".replaceAll("^0+(?!$)", "") 很接近,但给出了“8,09,10,11”(即9上的零未去除) 任何人都有一个正则表达式,我可以用它来做我需要的事情吗?我认为这会起作用: str.replaceAll("(?<!\d)0+(?=\d+)", ""); str.replaceAll((?这将起作用: str.replaceAll("(?<

我有字符串“08,09,10,11”,我想要“8,9,10,11”,即去掉所有前导零

正则表达式

"08,09,10,11".replaceAll("^0+(?!$)", "")
很接近,但给出了“8,09,10,11”(即9上的零未去除)


任何人都有一个正则表达式,我可以用它来做我需要的事情吗?

我认为这会起作用:

str.replaceAll("(?<!\d)0+(?=\d+)", "");
str.replaceAll((?这将起作用:

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

str.replaceAll(“^0+”,”)

这两种方法的不同之处在于:

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

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


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

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

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

@LukasKnuth,这实际上是一个5秒的修复。