JAVA中如何查找文本中包含的网址

前言:今天做项目,有个需求,需要获取文本中包含的网址,于是开始百度记录。

解决思路: 匹配正则。目前只会网上搜索拿来用【简直是程序猿的耻辱,不能学我】

代码

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

public class URLMatcher {
    public static void main(String[] args) {
        Pattern pattern = Pattern
                .compile("(http://|ftp://|https://|www){0,1}[^\u4e00-\u9fa5\\s]*?\\.(com|net|cn|me|tw|fr)[^\u4e00-\u9fa5\\s]*");
        // 空格结束
        Matcher matcher = pattern
                .matcher("随碟附送下载地址http://www.zuidaima.com/sdfsdf.htm?aaaa=%ee%sss ?sdfsyyy空格结束");
        while (matcher.find()) {
            System.out.println(matcher.group(0));
        }

        // 中文结束
        matcher = pattern
                .matcher("随碟附送下载地址http://www.zuidaima.com/sdfsdf.htm?aaaa=%ee%sss网址结束");
        while (matcher.find()) {
            System.out.println(matcher.group(0));
        }

        // 没有http://开头
        matcher = pattern
                .matcher("随碟附送下载地址www.zuidaima.com/sdfsdf.htm?aaaa=%ee%sss网址结束");
        while (matcher.find()) {
            System.out.println(matcher.group(0));
        }

        // net域名
        matcher = pattern
                .matcher("随碟附送下载地址www.xxx.net/sdfsdf.htm?aaaa=%ee%sss网址结束");
        while (matcher.find()) {
            System.out.println(matcher.group(0));
        }

        // xxx域名
        matcher = pattern
                .matcher("随碟附送下载地址www.zuidaima.xxx/sdfsdf.htm?aaaa=%ee%sss网址结束");
        while (matcher.find()) {
            System.out.println(matcher.group(0));
        }

        // yyyy域名匹配不到
        System.out.println("匹配不到yyyy域名");
        matcher = pattern
                .matcher("随碟附送下载地址www.zuidaima.yyyy/sdfsdf.html?aaaa=%ee%sss网址结束");
        while (matcher.find()) {
            System.out.println(matcher.group(0));
        }

        // 没有http://www.
        matcher = pattern
                .matcher("随碟附送下载地址zuidaima.com/sdfsdf.html?aaaa=%ee%sss网址结束");
        while (matcher.find()) {
            System.out.println(matcher.group(0));
        }

    }
}

感谢博主

凡事多问为什么,一举反三,事半功倍!!!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值