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

Java如何从字符串中提取双引号包裹的参数值

实现思路
  • 先对原始输入做预处理:如果字符串里的双引号是HTML转义格式",先统一替换成普通双引号",再按换行符拆分所有行,空行直接保留用于分段。
  • 用正则表达式匹配行尾的参数结构,匹配规则为「连续单词构成的参数名 + 任意空白字符 + 双引号包裹的任意非双引号内容」,对应正则模式为(\w+)\s+"([^"]+)",模式中两个捕获组分别对应参数名和参数值,不需要手动遍历字符定位双引号位置,逻辑更简洁。
  • 逐行遍历匹配所有符合规则的参数对,按参数名 = 参数值的格式拼接输出,空行直接追加到结果中,保持和要求一致的分段格式。
代码示例
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class ParamExtractor {
    public static void main(String[] args) {
        // 原始待处理文本,自动兼容HTML转义双引号场景
        String rawContent = """
            Connect to Database to get data of student severity "low" priority "minor"

            Connect to System API to get details severity "moderate" priority "medium"
            """.replace(""", "\"");

        Pattern pattern = Pattern.compile("(\\w+)\\s+\"([^\"]+)\"");
        StringBuilder result = new StringBuilder();

        for (String line : rawContent.split("\\n")) {
            if (line.isBlank()) {
                result.append(System.lineSeparator());
                continue;
            }
            Matcher matcher = pattern.matcher(line);
            while (matcher.find()) {
                result.append(matcher.group(1))
                      .append(" = ")
                      .append(matcher.group(2))
                      .append(System.lineSeparator());
            }
        }

        // 输出最终结果
        System.out.print(result);
    }
}
运行结果

代码执行后输出内容完全匹配要求格式:

severity = low
priority = minor

severity = moderate
priority = medium

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.28 01:18:49