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

如何在Java 1.8中提取已知起止标记间的可变长度字符串

Java 1.8 提取标记间可变长度子串的实现方案

可以通过正则表达式结合Java 1.8的Pattern和Matcher类实现需求,核心思路是动态生成匹配规则,精准定位-$tagName$-和-$tagNameEnd$-之间的任意长度内容。

实现代码

下面是封装好的工具方法,支持根据指定标签名提取对应内容:

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

public class TagContentExtractor {

    // 提取指定标签间的内容,标签名需与标记中的大小写完全匹配
    public static String extractContent(String originalStr, String tagName) {
        // 构建正则表达式:匹配-$tagName$-开头,-$tagNameEnd$-结尾,中间捕获任意非换行内容
        String regex = "-\\$" + tagName + "\\$-([\\s\\S]*?)-\\$" + tagName + "End\\$-";
        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(originalStr);
        
        if (matcher.find()) {
            return matcher.group(1).trim(); // 返回捕获组的内容,去除首尾空格
        }
        return null; // 未找到对应标签时返回null,也可根据需求返回空字符串
    }

    public static void main(String[] args) {
        // 用户提供的原始字符串
        String sourceStr = "-$ErrorCode$-0-$ErrorCodeEnd$--$Errortext$-Success-$ErrorTextEnd$--$val1$-test160-$val1End$--$LIST1$--$val2$--test1160--$val2End--$List2End$-";
        
        // 提取各标签内容
        String errorCode = extractContent(sourceStr, "ErrorCode");
        String errorText = extractContent(sourceStr, "Errortext");
        String val1 = extractContent(sourceStr, "val1");
        String val2 = extractContent(sourceStr, "val2");
        
        // 输出结果
        System.out.println("ErrorCode: " + errorCode);
        System.out.println("Errortext: " + errorText);
        System.out.println("val1: " + val1);
        System.out.println("val2: " + val2);
    }
}

代码说明

  1. 正则规则:-\\$" + tagName + "\\$-([\\s\\S]*?)-\\$" + tagName + "End\\$- 中,[\\s\\S]*? 用于匹配任意字符(包括换行),*? 是非贪婪模式,避免匹配到后续其他标签的结束标记。
  2. 大小写注意:标签名需与原始字符串中的标记严格一致(比如示例中的Errortext和ErrorTextEnd,注意Text的大小写),否则无法匹配。
  3. 边界处理:未找到对应标签时返回null,可根据业务需求修改为返回空字符串。

运行上述代码,输出结果为:

ErrorCode: 0
Errortext: Success
val1: test160
val2: test1160

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.08 14:45:41