如何从任何 ipv6 地址中删除前导零。
String resultString = subjectString.replaceAll("((?::0\\b){2,}):?(?!\\S*\\b\\1:0\\b) (\\S*)", "::$2");
它正在压缩为这种形式。
2001:0DB8:0:0:0476:: --> 2001:0DB8::0476::
但它应该删除前导零,例如:
2001:DB8::476::
我需要在上述正则表达式中更改什么?
最佳答案
我可以给你一个简单的解决方案:
String subjectString="2001:0DB8:0:0:0476::";
String resultString = subjectString.replaceAll("(:(0)*)|(^0+)",":");
System.out.println(resultString);
结果将是:
2001:DB8:::476::
关于java - 正则表达式删除任何 ipv6 地址的前导零,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21012485/