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

如何编写Java正则表达式匹配三个链接并提取指定内容

Java正则匹配三个链接并提取目标日期字符串

需求说明

我之前实现了匹配两个特定下载链接的Java正则,现在需要扩展为匹配三个链接,并分别提取每个链接中的目标日期字符串:

  • 链接1:https://downloads.test.test.testagain.tes/test-test/test/te25st24w/te43s5t25x/0twt42ts/test0218.pdf → 提取 0218
  • 链接2:https://downloads.test.test.testagain.tes/test-test/test/te25st24w/te43s5t25x/0twt42ts/TestTes-09-05-2018.pdf → 提取 09-05-2018
  • 链接3:https://downloads.test.test.testagain.tes/test-test/test/te25st24w/te43s5t25x/0twt42ts/01-01-18_Testt_Testing_ASB_Test_Final.pdf → 提取 01-01-18

原有正则代码:

String REGEX_LINK = "https:..downloads.test.test.testagain.tes.test-test.test.";
Pattern pattern = Pattern.compile( REGEX_LINK + ".[\\w*/]*.((\\d{2}-\\d{2}-)?\\d{4}).pdf" );

解决方案

调整正则以覆盖三种日期格式,同时修正原有正则的转义问题(原代码中的.未转义会匹配任意字符,导致匹配范围过大):

最终实现代码

// 固定前缀部分,修正转义符确保匹配实际的域名和路径
String REGEX_PREFIX = "https://downloads\\.test\\.test\\.testagain\\.tes/test-test/test/te25st24w/te43s5t25x/0twt42ts/";
// 核心正则:捕获三种日期格式,使用非贪婪匹配避免过度匹配
Pattern pattern = Pattern.compile(REGEX_PREFIX + ".*?((?:\\d{2}-\\d{2}-)?(?:\\d{4}|\\d{2})).*?\\.pdf");

// 测试三个目标链接
String[] targetLinks = {
    "https://downloads.test.test.testagain.tes/test-test/test/te25st24w/te43s5t25x/0twt42ts/test0218.pdf",
    "https://downloads.test.test.testagain.tes/test-test/test/te25st24w/te43s5t25x/0twt42ts/TestTes-09-05-2018.pdf",
    "https://downloads.test.test.testagain.tes/test-test/test/te25st24w/te43s5t25x/0twt42ts/01-01-18_Testt_Testing_ASB_Test_Final.pdf"
};

for (String link : targetLinks) {
    Matcher matcher = pattern.matcher(link);
    if (matcher.find()) {
        System.out.println("提取结果:" + matcher.group(1));
    }
}

正则逻辑拆解

  1. 前缀部分:将原有的模糊匹配https:..修正为精确转义的域名路径https://downloads\\.test\\.test\\.testagain\\.tes/...,避免误匹配其他无关链接。
  2. 核心捕获组:((?:\\d{2}-\\d{2}-)?(?:\\d{4}|\\d{2}))
    • (?:\\d{2}-\\d{2}-)?:可选的MM-DD-前缀,使用非捕获组(?:...)减少不必要的分组
    • (?:\\d{4}|\\d{2}):匹配四位数字(0218或2018)或两位数字(18),同样用非捕获组优化
  3. 非贪婪匹配:.*?确保匹配到日期后立即停止,不会跳过目标日期去匹配后续的无关字符。

运行输出

提取结果:0218
提取结果:09-05-2018
提取结果:01-01-18

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.22 15:27:12