前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >正则表达式获取一串网址的域名段代码

正则表达式获取一串网址的域名段代码

作者头像
小小鱼儿小小林
发布2024-05-25 14:29:45
470
发布2024-05-25 14:29:45
举报
文章被收录于专栏:灵儿的笔记灵儿的笔记

有时候我们需要对一段网址获取其域名的一串,

比如:http://www.baidu.com/aaaa/bbb/cccc.html

我们需要获取到http://www.baidu.com这一串,

或者是http://192.168.111.11:8888/aaaa/bbb/ccc.html

我们需要获取到http://192.168.111.11:8888这一串

那正则表达式应该怎么写呢?

代码语言:javascript
复制
public static String getRegUrl(String url) {
        //使用正则表达式过滤,
        String re = "((http|ftp|https)://)(([a-zA-Z0-9._-]+)|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}))(([a-zA-Z]{2,6})|(:[0-9]{1,4})?)";
        String str = "";
        // 编译正则表达式
        Pattern pattern = Pattern.compile(re);
        // 忽略大小写的写法
        // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(url);
        //若url==http://127.0.0.1:9040或www.baidu.com的,正则表达式表示匹配
        if (matcher.matches()) {
            str = url;
        } else {
            String[] split2 = url.split(re);
            if (split2.length > 1) {
                String substring = url.substring(0, url.length() - split2[1].length());
                str = substring;
            } else {
                str = split2[0];
            }
        }
        return str;
    }

运行结果:

完整demo:

代码语言:javascript
复制
import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class Testccc {
    public static void main(String[] args) {
        String aaa="https://192.168.111.11:8888/aaa/bbb/ccc.html";
        String ip = getRegUrl(aaa);
        System.out.println("网址:"+aaa+"的域名是:"+ip);
        String bbb="http://www.baidu.com/aaaa/bbb/cccc.html";
        String ip2 = getRegUrl(bbb);
        System.out.println("网址:"+bbb+"的域名是:"+ip2);
    }

    public static String getRegUrl(String url) {
        //使用正则表达式过滤,
        String re = "((http|ftp|https)://)(([a-zA-Z0-9._-]+)|([0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}.[0-9]{1,3}))(([a-zA-Z]{2,6})|(:[0-9]{1,4})?)";
        String str = "";
        // 编译正则表达式
        Pattern pattern = Pattern.compile(re);
        // 忽略大小写的写法
        // Pattern pat = Pattern.compile(regEx, Pattern.CASE_INSENSITIVE);
        Matcher matcher = pattern.matcher(url);
        //若url==http://127.0.0.1:9040或www.baidu.com的,正则表达式表示匹配
        if (matcher.matches()) {
            str = url;
        } else {
            String[] split2 = url.split(re);
            if (split2.length > 1) {
                String substring = url.substring(0, url.length() - split2[1].length());
                str = substring;
            } else {
                str = split2[0];
            }
        }
        return str;
    }
}
本文参与 腾讯云自媒体同步曝光计划,分享自作者个人站点/博客。
原始发表:2024-05-24,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档