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

Java 1.6中如何仅在首个匹配正则位置分割字符串?

解决方案

在Java 1.6中,你可以使用**正向预查(positive lookahead)**来精准定位需要分割的位置,避免分割所有逗号加空格的场景。

核心思路

你需要分割的是逗号+空格后紧跟数字的位置,而其他逗号+空格后是字母,不需要分割。利用正则的正向预查(?=[0-9]),可以匹配到满足"后面是数字"条件的逗号空格,只在这个位置执行分割。

具体实现代码

public class SplitDemo {
    public static void main(String[] args) {
        String inputStr = "123456 - A, Bcd, 789101 - E, Fgh";
        // 带正向预查的分割正则
        String[] resultParts = inputStr.split(",\\s(?=[0-9])");
        
        // 打印分割结果
        for (String part : resultParts) {
            System.out.println(part);
        }
    }
}

代码细节解释

  • ,\\s:匹配目标字符串中的"逗号+空格"字符组合
  • (?=[0-9]):正向预查断言,确保当前匹配的"逗号+空格"后面紧跟一个数字(也可以用\\d替代[0-9],Java 1.6同样支持)
  • 整个正则只会匹配到"Bcd"后面的", "(因为它后面是数字7),而"A"后面的", "后面是字母B,不会被匹配到,因此split只会在你需要的位置分割字符串。

运行输出结果

执行上述代码后,会得到你想要的两个分割结果:

123456 - A, Bcd
789101 - E, Fgh

内容的提问来源于stack exchange,提问作者A. Jachs

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.22 07:56:06