javascript正则式

本文详细解释了正则表达式的四种分组类型:捕获型、非捕获型、向前正向匹配和向前负向匹配,并通过实例展示了它们的应用。文章最后提供了关键词和相关标签,为读者提供深入学习资源。

正则表达式分组有4种:

先给个例子:

var parse_url = /^(?:([A-Za-z]+):)?(\/{0,3})([0-9.\-A-Za-z]+)(?::(\d+))?(?:\/([^?#]*))?(?:\?([^#]*))?(?:#(.*))?$/;

var url = 'http://piao.qunar.com:80/index.html?keyword=abc#city=beijing';

执行parse_url.exec(url)得到

["http://piao.qunar.com:80/index.html?keyword=abc#city=beijing", "http", "//", "piao.qunar.com", "80", "index.html", "keyword=abc", "city=beijing"]。

一、捕获型

  一个捕获型分组是一个被包围在括号中的正则表达式选择如上面的([0-9.\-A-Za-z]+)。任何匹配这个分组的字符将被捕获。每个捕获型分组都被指定一个数字。在正则表达式中第一个捕获的是分组1,第二个捕获的是分组2。

二、非捕获型

  非捕获型分组有一个(?:前缀。非捕获型分组仅作简单的匹配,并不会捕获所匹配文本。这会有微弱的性能优势。非捕获型分组不会干扰捕获型分组的编号。如上面的(?:([A-Za-z]+):)。

三、向前正向匹配

  向前正向匹配有一个(?=前缀。它类似于非捕获型分组,但在这个匹配之后,文本将倒回到他开始匹配的地方。

四、向前负向匹配

  向前负向匹配分组有一个(?!前缀。他类似于向前匹配,但只有他匹配失败时他才进行匹配。

三和四,实际上都不匹配任何东西它们只是作为判断而已。

详细信息请看《javascript语言精粹》第七章。

 

转载于:https://www.cnblogs.com/adullboy/p/3139078.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值