正则表达式拆分url实例代码


Posted in Java/Android onFebruary 24, 2022

背景

做web开发的同学,经常会有从url中获取二级域名或者主域名或者参数等等需求,需要扎实的正则功底。本文提供一个全面的url拆分案例,需要哪个部分用哪个部分。

案例

将url的各个部分拆开,让我想取哪部分就取哪部分?

url: http://www.baidu.com/love/java?lang=java
regex: (\w+):\/\/([^/:]+)(:\d*)?([^# ]*)

使用js举例

var url = "http://www.baidu.com:80/love/java?lang=java";
var patt1 = /(\w+):\/\/([^/:]+)(:\d*)?([^# ]*)/;
arr = url.match(patt1);
for (var i = 0; i < arr.length ; i++) {
    document.write(arr[i]);
    document.write("<br>");
}

输出结果如下:

http://www.baidu.com:80/love/java?lang=java
http
www.baidu.com
:80
/love/java?lang=java

使用java举例

String url = "http://www.baidu.com:80/love/java?lang=java";
        Pattern pattern = Pattern.compile("(\\w+):\\/\\/([^/:]+)(:\\d*)?([^# ]*)");
        Matcher matcher = pattern.matcher(url);
        matcher.find();
        for (int i = 1; i <= matcher.groupCount(); i++){
            System.out.println(matcher.group(i));
        }

输出结果:

http
www.baidu.com
:80
/love/java?lang=java

正则说明

实例中的数组包含 5 个元素,索引 0 对应的是整个字符串,索引 1 对应第一个匹配符(括号内),以此类推。

第一个括号子表达式捕获 Web 地址的协议部分。该子表达式匹配在冒号和两个正斜杠前面的任何单词。

第二个括号子表达式捕获地址的域地址部分。子表达式匹配非 : 和 / 之后的一个或多个字符。

第三个括号子表达式捕获端口号(如果指定了的话)。该子表达式匹配冒号后面的零个或多个数字。只能重复一次该子表达式。

第四个括号子表达式捕获 Web 地址指定的路径和 / 或页信息。该子表达式能匹配不包括 # 或空格字符的任何字符序列。

总结

到此这篇关于正则表达式拆分url的文章就介绍到这了,更多相关正则表达式拆分url内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Java/Android 相关文章推荐
Java中多线程下载图片并压缩能提高效率吗
Jul 01 Java/Android
关于springboot 配置date字段返回时间戳的问题
Jul 25 Java/Android
java代码实现空间切割
Jan 18 Java/Android
java executor包参数处理功能 
Feb 15 Java/Android
Spring this调用当前类方法无法拦截的示例代码
Mar 20 Java/Android
Java Spring Boot 正确读取配置文件中的属性的值
Apr 20 Java/Android
Java由浅入深通关抽象类与接口(上篇)
Apr 26 Java/Android
Spring Data JPA框架持久化存储数据到数据库
Apr 28 Java/Android
Android Studio 计算器开发
May 20 Java/Android
Spring中的@Transactional的工作原理
Jun 05 Java/Android
Android Canvas绘制文字横纵向对齐
Jun 05 Java/Android
maven 解包依赖项中的文件的解决方法
Jul 15 Java/Android
mybatis源码解读之executor包语句处理功能
Feb 15 #Java/Android
java executor包参数处理功能 
Feb 15 #Java/Android
Java如何实现通过键盘输入一个数组
Feb 15 #Java/Android
Java实现给Word文件添加文字水印
Feb 15 #Java/Android
SSM项目使用拦截器实现登录验证功能
Jan 22 #Java/Android
利用Sharding-Jdbc进行分库分表的操作代码
关于MybatisPlus配置双数据库驱动连接数据库问题
Jan 22 #Java/Android
You might like
php+iframe实现隐藏无刷新上传文件
2012/02/10 PHP
PHP图片等比缩放类SimpleImage使用方法和使用实例分享
2014/04/10 PHP
php文档工具PHP Documentor安装与使用方法
2016/01/25 PHP
Zend Framework入门教程之Zend_View组件用法示例
2016/12/09 PHP
PHP语言对接抖音快手小红书视频/图片去水印API接口源码
2020/08/11 PHP
ASP小贴士/ASP Tips javascript tips可以当桌面
2009/12/10 Javascript
ExtJs之带图片的下拉列表框插件
2010/03/04 Javascript
Jqgrid设置全选(选择)及获取选择行的值示例代码
2013/12/28 Javascript
json的定义、标准格式及json字符串检验
2014/05/11 Javascript
Bootstrap3 input输入框插入glyphicon图标的方法
2016/05/16 Javascript
判断数组是否包含某个元素的js函数实现方法
2016/05/19 Javascript
JS常见算法详解
2017/02/28 Javascript
JavaScript常见鼠标事件与用法分析
2019/01/03 Javascript
node express使用HTML模板的方法示例
2019/08/22 Javascript
vue实现移动端省市区选择
2019/09/27 Javascript
如何基于viewport vm适配移动端页面
2020/11/13 Javascript
JavaScript中的几种继承方法示例
2020/12/06 Javascript
python实现将读入的多维list转为一维list的方法
2018/06/28 Python
对python中array.sum(axis=?)的用法介绍
2018/06/28 Python
python实现批量nii文件转换为png图像
2019/07/18 Python
Python实现点云投影到平面显示
2020/01/18 Python
Python self用法详解
2020/11/28 Python
python元组拆包实现方法
2021/02/28 Python
HTML5微信播放全屏问题的解决方法
2017/03/09 HTML / CSS
Gap中国官网:美式休闲风服饰
2017/02/05 全球购物
GafasWorld哥伦比亚:网上购买眼镜
2017/11/28 全球购物
美国男士内衣品牌:Tommy John
2017/12/22 全球购物
TIME时代杂志台湾总代理:台时亚洲
2018/10/22 全球购物
小蚁科技官方商店:YI Technology
2019/08/23 全球购物
迪士尼法国在线商店:shopDisney FR
2020/12/03 全球购物
土木工程毕业生自荐信
2013/09/21 职场文书
优秀应届毕业生推荐信
2014/02/18 职场文书
手术室护士长竞聘书
2014/03/31 职场文书
12岁生日演讲稿
2014/05/14 职场文书
市级三好生竞选稿
2015/11/21 职场文书
Vue Element-ui表单校验规则实现
2021/07/09 Vue.js