温馨提示×

温馨提示×

您好,登录后才能下订单哦!

密码登录×
登录注册×
其他方式登录
点击 登录注册 即表示同意《亿速云用户服务条款》

Java正则怎么提取网址链接

发布时间:2026-07-24 07:01:08 来源:亿速云 阅读:113 作者:小樊 栏目:编程语言

在 Java 中,可以使用 正则表达式 配合 Pattern 和 Matcher 来提取文本中的网址链接。下面给你几种常见、实用的做法。


一、最简单常用(推荐)

示例:从文本中提取 HTTP/HTTPS 链接

import java.util.regex.*;
import java.util.*;

public class UrlExtractor {
    public static void main(String[] args) {
        String text = "访问我的网站 https://www.example.com 和 http://test.com/index.html";

        String regex = "https?://[\\w.-]+(?:\\.[\\w.-]+)+[\\w.,@?^=%&:/~+#-]*";

        Pattern pattern = Pattern.compile(regex);
        Matcher matcher = pattern.matcher(text);

        while (matcher.find()) {
            System.out.println(matcher.group());
        }
    }
}

输出

https://www.example.com
http://test.com/index.html

二、正则说明(通俗版)

https?://
  • http 或 https
[\\w.-]+
  • 域名部分(支持字母、数字、下划线、点、中划线)
(?:\\.[\\w.-]+)+
  • 顶级域名(.com、.cn、.co.uk 等)
[\\w.,@?^=%&:/~+#-]*
  • URL 后面的路径、参数、锚点等

三、提取并去重

Set<String> urls = new HashSet<>();
while (matcher.find()) {
    urls.add(matcher.group());
}

四、支持更多协议(ftp / file 等)

String regex = "(https?|ftp|file)://[\\w.-]+(?:\\.[\\w.-]+)+[\\w.,@?^=%&:/~+#-]*";

五、⚠️ 注意事项(很重要)

1️⃣ 正则无法 100% 覆盖所有合法 URL

URL 规范非常复杂,正则只能“近似匹配”。

2️⃣ 如果文本是 HTML

✅ 不要自己写正则解析 HTML
✅ 推荐用:

  • Jsoup
Document doc = Jsoup.parse(html);
Elements links = doc.select("a[href]");
for (Element link : links) {
    System.out.println(link.attr("href"));
}

六、总结

场景 建议
普通文本 正则提取
简单需求 https?://...
HTML 页面 Jsoup
高准确性 正则 + URL 校验

如果你有具体文本样例(比如微信文章、HTML、日志),我可以帮你写一个更精准的正则。

向AI问一下细节

免责声明:本站发布的内容(图片、视频和文字)以原创、转载和分享为主,文章观点不代表本网站立场,如果涉及侵权请联系站长邮箱:is@yisu.com进行举报,并提供相关证据,一经查实,将立刻删除涉嫌侵权内容。

AI
助
手