javascript正则表达式分组-捕获性分组/非捕获性分组/正则前瞻
来源:互联网 发布:wind万得资讯的数据库 编辑:程序博客网 时间:2024/05/27 02:28
捕获性分组 vs. 非捕获性分组
捕获性分组(...)就是捕获分组所匹配的内容暂且存储在某个地方,以便下次使用,捕获性分组以(...)表示,有些地方将取得捕获性分组所匹配结果的过程称之为"反向引用"
非捕获性分组不捕获分组所匹配的内容,当然也就得不到匹配的结果,非捕获性分组以(?:...)表示,在一些只需要分组匹配但是并不需要得到各个分组匹配的结果时,使用非捕获性分组可以提高匹配速度
var now = "25/10/2009";/(\d\d)\/(\d\d)\/(\d\d\d\d)/.test(now);RegExp.$1; //25RegExp.$2; //10RegExp.$3; //2009now.replace(/(\d\d)\/(\d\d)\/(\d\d\d\d)/,"$3-$2-$1"); //2009-10-25now.replace(/(\d{2})\/(\d{2})\/(\d{4})/,"$3-$2-$1"); //2009-10-25
正则前瞻 vs. 非捕获性分组
正则前瞻(?=)会作为匹配校验,但不会出现在匹配结果字符串里面
非捕获性分组(?:)会作为匹配校验,并出现在匹配结果字符里面,它跟(...)不同的地方在于,不作为子匹配返回。
例如:
var data = 'windows 98 is ok';data.match(/windows (?=\d+)/); // ["windows "]data.match(/windows (?:\d+)/); // ["windows 98"]data.match(/windows (\d+)/); // ["windows 98", "98"]
非捕获性分组定义子表达式可以作为整体被修饰但是子表达式匹配结果不会被存储。
非捕获性分组通过将子表达式放在"?:"符号后。
var str_img = "img1.jpg,img2.jpg,img3.bmp";var reg = /(?:\w*)(?=\.jpg)/g;var arr_m = str_img.match(reg);//arr_m = [ 'img1', '', 'img2', '' ]var reg2 = /(?:\w*)(?:\.jpg)/g;var arr_m2=str_img.match(reg2); //arr_m2=[ 'img1.jpg', 'img2.jpg' ]
0 0
- javascript正则表达式分组-捕获性分组/非捕获性分组/正则前瞻
- JavaScript正则表达式分组模式:捕获性分组与非捕获性分组及前瞻
- 【JavaScript 学习--01】--正则表达式的正则前瞻(?=)和非捕获性分组(?:)区别
- 正则表达式 非捕获性分组
- 正则表达式-非捕获性分组
- javascript非捕获性分组和前瞻
- 正则表达式捕获分组
- javascript正则表达式:非捕获分组的一个使用例子
- 正则表达式分组捕获说明
- 正则表达式之捕获型分组与非捕获型分组
- java 高级正则表达式 分组 捕获 引用
- 正则表达式 分组捕获(反向引用)
- 正则表达式高级用法(分组与捕获)
- perl正则命名分组捕获
- javascript正则表达式分组
- javascript 正则表达式 分组
- 正则表达式之分组捕获、条件表达式、平衡组
- 正则表达式之分组捕获、条件表达式、平衡组
- 当产品没有USB,没有网卡时怎么调试linux 驱动/应用程序?
- 游戏中的武器类
- 简易kmeans-c++版本
- 自定义组合控件--来自布局
- inline函数和一般的函数有什么不同
- javascript正则表达式分组-捕获性分组/非捕获性分组/正则前瞻
- Remove Duplicates from Sorted List
- leetCode 20 Valid Parentheses
- Android多线程--AsyncTask
- (WPF)通知栏图标和右键菜单
- c++作业3
- 利用 fusioncharts-suite-xt 完成数据的统计图显示
- 我的第一篇CSDN博客——Redis集群安装与配置1
- NYOJ-24 素数距离问题