You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Java正则如何按多字符和空格分割字符串以提取数字

问题解决方法

你需要的split正则参数为 \\D+ 即可,这个正则可以匹配连续1个及以上的所有非数字字符,自动把字母、空格、特殊符号都作为分割边界,刚好满足你的提取需求。

完整可运行示例代码

String a = "1a2bc3 4d5      6ads";
String[] numArr = a.split("\\D+");

// 输出拼接结果 1 2 3 4 5 6
String result = String.join(" ", numArr);
System.out.println(result);

正则逻辑说明

  • \\D 是正则中数字的反匹配规则,等价于 [^0-9],可以匹配所有不属于0-9的字符,天然覆盖你提到的普通字符、空格等分割场景
  • 后缀的 + 代表匹配连续1次及以上的规则,把连续的多个非数字字符识别为同一个分割符,避免生成多余的空字符串元素
  • 如果你的实际场景中可能存在字符串开头为非数字的情况,分割后第一个元素会是空值,只需要遍历数组时跳过空字符串即可适配。

内容的提问来源于stack exchange,提问作者Jacel

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.10.04 22:12:02