url正则
来源:互联网 发布:2013知乎年度吐槽精选 编辑:程序博客网 时间:2024/05/21 09:45
用来匹配URL的正则表达式:
var parse_url= /^ (?:([A-Za-z]+):)? (\/{0,3}) ([0-9.\-A-Za-z]+) (?::(\d+))? (?:\/([^?#]*))? (?:\?([^#]*))? (?:#(.*))? $/;
解释:
(?:([A-Za-z]+):)? 当它之后跟随一个:(冒号)的时候才匹配。
(?: )表示一个非捕获型分组,不捕获匹配结果。后缀?表示这个分组是可选的(表示重复0或1次)。
( )表示一个捕获型分组,后缀+表示这个字符类至少匹配1次
(\/{0,3}) 用\(反斜杠)转义,获得/ 0到3次
([0-9.\-A-Za-z]+) 捕获型分组,匹配一个主机名,捕获1个或多个 数字、字母或.或-
(?: :(\d+))?\d表示一个数字
(?:\/([^?#]*))? 以/开始,之后的[^?#]中 ^是“非”的意思。 *表示0个或多个。
(?:\?([^#]*))?
(?:#(.*))?
关于非捕获:
匹配2015-04-21,你可以用\d{4}-\d{2}-\d{2},你也可以加个括号(\d{4})-(\d{2})-(\d{2}),意思是完全一样的,但加了括号,就意味括号里面的东西,你捕获到了,你可以再使用,这就是捕获组的概念
上面这种情况,你是没必要加括号,但是,有时候你必不得已要加括号,比如说匹配1-100的数字,你会用^([1-9]?[0-9]|100)$,但是这个时候,会默认把括号里的东西捕获过来以供你下次使用,其实,你只是用着正则匹配而已,因此就造成了内存浪费,当正则复杂时,效率更加低下,因此才有了非捕获组,上面的就可以改写成^(?:[1-9]?[0-9]|100)$
- url正则
- url正则
- url正则表达式提取
- 一个URL正则表达式
- 匹配URL的正则
- 获得URL的正则。
- 正则 宝典的url
- java url 正则表达式
- URL网址正则表达式
- 正则表达式验证url
- URL的正则匹配
- 正则表达式匹配URL
- URL正则表达式大全
- 正则表达式验证URL
- url的正则表达式
- URL正则替换
- 正则匹配url
- 正则表达式识别URL
- 传感器
- 例题3-2
- doFilter如何使用
- HDU ACM 1286-找新朋友-欧拉phi函数
- 代码片1
- url正则
- 【bzoj1101】Zap【神奇的∑】
- ruby使用方法
- 开发篇1_如何管理证书(并上传Azure)
- 微信入口绑定,微信事件处理,微信API全部操作
- 段的综述
- 解决servlet在post/get传递中文乱码的问题
- 黑马程序员----面向对象之(三)----Exception
- 《Scala编程》学习笔记(11~14章)