在Java中使用正则表达式拆分后,如何删除空结果?

在Java中使用正则表达式拆分后,如何删除空结果?,第1张

在Java中使用正则表达式拆分后,如何删除空结果?

不要使用

split
。使用
find
将返回所有匹配子字符串的方法。你可以做到

Pattern reg = Pattern.compile("\d+");Matcher m = reg.matcher("asd0085 sa223 9349x");while (m.find())    System.out.println(m.group());

将打印

00852239349

根据您的正则表达式,看来您的目标也就是要删除前导零,例如

0085
。如果是这样,则可以使用regex like
0*(\d+)
并参加与组1(括号中的一个)匹配的部分,并在该组之外匹配前导零。

Pattern reg = Pattern.compile("0*(\d+)");Matcher m = reg.matcher("asd0085 sa223 9349x");while (m.find())    System.out.println(m.group(1));

输出:

852239349

但是,如果您真的想使用,

split
然后更改
"\D0*"
\D+0*
,则可以拆分一个或多个非数字
\D+
,而不只是一个非数字
\D
,但是使用此解决方案,您可能需要忽略结果数组中的第一个空元素(取决于字符串)将从应拆分的元素开始)。



欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5135500.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-11-17
下一篇 2022-11-17

发表评论

登录后才能评论

评论列表(0条)

保存