Java正则表达式,用于去除分隔字符串中的所有前导零
我有字符串“08,09,10,11”,我想要“8,9,10,11”,即去掉所有前导零 正则表达式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".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秒的修复。