提取字符串中url的方法

Pattern patternUrl =Pattern.compile(
            new StringBuilder()
                .append("((?:(http|https|Http|Https|rtsp|Rtsp):")
                .append("//////(?:(?:[a-zA-Z0-9//$//-//_//.//+//!//*//'//(//)")
                    .append("//,//;//?//&//=]|(?://%[a-fA-F0-9]{2})){1,64}(?://:(?:[a-zA-Z0-9//$//-//_")
                    .append("//.//+//!//*//'//(//)//,//;//?//&//=]|(?://%[a-fA-F0-9]{2})){1,25})?//@)?)")
                    // (http://something){1}.com
                    //.append("//.//+//!//*//'//(//)//,//;//?//&//=]|(?://%[a-fA-F0-9]{2})){1,25})?//@)?)?")
                    .append("((?:(?:[a-zA-Z0-9][a-zA-Z0-9//-]{0,64}//.)+")   // named host
                    .append("(?:")   // plus top level domain
                    .append("(?:aero|arpa|asia|a[cdefgilmnoqrstuwxz])")
                    .append("|(?:biz|b[abdefghijmnorstvwyz])")
                    .append("|(?:cat|com|coop|c[acdfghiklmnoruvxyz])")
                    .append("|d[ejkmoz]")
                    .append("|(?:edu|e[cegrstu])")
                    .append("|f[ijkmor]")
                    .append("|(?:gov|g[abdefghilmnpqrstuwy])")
                    .append("|h[kmnrtu]")
                    .append("|(?:info|int|i[delmnoqrst])")
                    .append("|(?:jobs|j[emop])")
                    .append("|k[eghimnrwyz]")
                    .append("|l[abcikrstuvy]")
                    .append("|(?:mil|mobi|museum|m[acdeghklmnopqrstuvwxyz])")
                    .append("|(?:name|net|n[acefgilopruz])")
                    .append("|(?:org|om)")
                    .append("|(?:pro|p[aefghklmnrstwy])")
                    .append("|qa")
                    .append("|r[eouw]")
                    .append("|s[abcdeghijklmnortuvyz]")
                    .append("|(?:tel|travel|t[cdfghjklmnoprtvwz])")
                    .append("|u[agkmsyz]")
                    .append("|v[aceginu]")
                    .append("|w[fs]")
                    .append("|y[etu]")
                    .append("|z[amw]))")
                    .append("|(?:(?:25[0-5]|2[0-4]") // or ip address
                    .append("[0-9]|[0-1][0-9]{2}|[1-9][0-9]|[1-9])//.(?:25[0-5]|2[0-4][0-9]")
                    .append("|[0-1][0-9]{2}|[1-9][0-9]|[1-9]|0)//.(?:25[0-5]|2[0-4][0-9]|[0-1]")
                    .append("[0-9]{2}|[1-9][0-9]|[1-9]|0)//.(?:25[0-5]|2[0-4][0-9]|[0-1][0-9]{2}")
                    .append("|[1-9][0-9]|[0-9])))")
                    .append("(?://://d{1,5})?)") // plus option port number
                    .append("((?:///)*(?:(?:[a-zA-Z0-9//;/////?//://@//&//=//#//~")  // plus option query params
                    .append("//-//.//+//!//*//'//(//)//,//_])|(?://%[a-fA-F0-9]{2}))*)?")
                    .append("(?://b|$)")
                    .append("?(?:///)*").toString()
                );

 

String s = "asdfdhttp://www.sina.com/范德萨的 http://www.google.com/这个";
        Matcher matcher = patternUrl.matcher(s);
        while (matcher != null && matcher.find()) {
            System.out.println(matcher.group(0));
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值