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

Java正则正向预查提取求助:匹配指定内容后提取逗号分隔列表

解决Java正则中的正向预查与列表提取问题

嘿,作为刚接触正则的Java开发者,我完全懂你遇到这些问题的头疼!咱们一步步来拆解解决:

一、为什么SKIP在Java里不生效?

首先得明确:Java自带的java.util.regex引擎不支持PCRE中的SKIP、FAIL这类特性,这些是Perl兼容正则的专属语法,所以你之前看到的方案在Java里跑不通很正常,得换Java支持的思路来实现需求。

二、提取"summer time we"后的逗号分隔列表

针对你的实际场景:给定字符串

It is very nice in summer and in summer time we swim, run, tan

要提取[swim, run, tan]这个数组,这里有两种实用的Java正则方案:

方案1:先匹配完整列表再拆分

先通过正向预查定位到"summer time we "之后的内容,拿到完整的逗号分隔字符串,再用split()拆分数组:

import java.util.Arrays;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo {
    public static void main(String[] args) {
        String input = "It is very nice in summer and in summer time we swim, run, tan";
        // 正则:匹配"summer time we "之后的所有单词(含逗号分隔符)
        Pattern pattern = Pattern.compile("(?<=summer time we )(?:\\w+(?:, )?)*");
        Matcher matcher = pattern.matcher(input);
        
        if (matcher.find()) {
            String listStr = matcher.group();
            String[] result = listStr.split(", ");
            System.out.println(Arrays.toString(result)); // 输出 [swim, run, tan]
        }
    }
}

方案2:逐个捕获目标单词

用正向预查同时匹配"summer time we "之后的第一个单词,以及后续逗号后的每个单词,通过循环find()收集所有结果:

import java.util.ArrayList;
import java.util.List;
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class RegexDemo {
    public static void main(String[] args) {
        String input = "It is very nice in summer and in summer time we swim, run, tan";
        // 正则:匹配"summer time we "或", "之后的单词
        Pattern pattern = Pattern.compile("(?<=summer time we |, )(\\w+)");
        Matcher matcher = pattern.matcher(input);
        
        List<String> resultList = new ArrayList<>();
        while (matcher.find()) {
            resultList.add(matcher.group(1));
        }
        System.out.println(resultList); // 输出 [swim, run, tan]
    }
}

这两种方案都避开了Java不支持的SKIP特性,完全用Java正则引擎兼容的语法实现了需求,你可以根据自己的场景选择更合适的一种~

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.05.29 08:20:52