JavaScript:正则表达式 分组
在现在的我看来,带小挂号的就是分组,嗯。
代码:
var reg=/(abc)/;
var str="abcdabcdeabcdef";
console.dir(reg.exec(str));

var reg=/(abc)(de)/;
var str="abcd abcde abcdef";
console.dir(reg.exec(str));

var reg=/(abc)(abc)/;
var str="abcd abcde abcdef";
console.dir(reg.exec(str));
没有子对象
var reg=/(abc){}/;
var str="abcd abcde abcdef abcabc";
console.dir(reg.exec(str));

var reg=/(abc)(abc)/;
var str="abcd abcde abcdef abcabc";
console.dir(reg.exec(str));

var reg=/(abc)(de)(fg)/;
var str="abcd abcde abcdef abcabc";
console.dir(reg.exec(str));
没有子对象
var reg=/(abc)(de)(f)/;
var str="abcd abcde abcdef abcabc";
console.dir(reg.exec(str));

var reg=/(abc)(f)(de)/;
var str="abcd abcde abcdef abcabc";
console.dir(reg.exec(str));
没有子对象
var reg=/(abc)(f)/;
var str="abcd abcde abcdef abcabc";
console.dir(reg.exec(str));
没有子对象
发现:
1.测试的字符串必须含有各个小挂号里面字符相加的一个大字符串,顺序也不能乱。
2.返回的数组的长度是各个小挂号数量+1,这个1就是上面说的那个大字符串。
3.返回对象的索引就是那个大字符串的索引。
特殊的:
var reg=/([abcd]bc)/;
var str="abc bbc cbc dbc";
console.dir(reg.exec(str));

var reg=/([abcd]bc)/g;
var str="abc bbc cbc dbc";
console.log(str.match(reg));
console.dir(reg.exec(str));
console.dir(reg.exec(str));
console.dir(reg.exec(str));
console.dir(reg.exec(str));
console.dir(reg.exec(str));
console.dir(reg.exec(str));

乖乖,这里面的道道还挺深的!
这里:中刮号内部的元素一个一个匹配,只要匹配一个就成功了,全局就全部匹配。
上面的全局的:
var reg=/(abc)(de)/g;
var str="abcd abcde abcdef";
console.log(str.match(reg));
console.dir(reg.exec(str));
console.dir(reg.exec(str));
console.dir(reg.exec(str));
console.dir(reg.exec(str));

引号对称
var reg=/^([\"'])\w*\1$/;
var str="\'abcdefgz\'";
var result=reg.exec(str);
console.log(result);
console.log(RegExp.$);

上面的\1就是引用了第一个组。
非捕获性分组
var reg=/(abc)(de)(fg)/g;
var str="abcd abcde abcdefg abcabc";
console.dir(reg.exec(str));

var reg=/(?:abc)(de)(fg)/g;
var str="abcd abcde abcdefg abcabc";
console.dir(reg.exec(str));

var reg=/(?:abc)(?:de)(fg)/g;
var str="abcd abcde abcdefg abcabc";
console.dir(reg.exec(str));

var reg=/(abc)(?:de)(fg)/g;
var str="abcd abcde abcdefg abcabc";
console.dir(reg.exec(str));

var reg=/(?:abc)(?:de)(?:fg)/;
var str="abcd abcde abcdefg abcabc";
console.dir(reg.exec(str));

var reg=/(abc)(?:de)(fg)/g;
var str="abcd abcde abcdefg abcabc";
console.dir(RegExp);

现在不说也发现了,其实就是那个引用没有了。
http://www.blogjava.net/ycyk168/archive/2009/10/25/299659.html
JavaScript:正则表达式 分组的更多相关文章
- JavaScript:正则表达式 分组2
继续上一篇的写,这篇复杂点. 分组+范围 var reg=/([abcd]bc)/g; var str="abcd bbcd cbcd dbcd"; console.log(str ...
- javascript正则表达式分组捕获理解
我们先来看一段js代码: var rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/; console.log(rquickExpr.ex ...
- 理清JavaScript正则表达式--上篇
在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...
- Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识
本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../ 用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...
- JavaScript正则表达式下——相关方法
上篇博客JavaScript 正则表达式上——基本语法介绍了JavaScript正则表达式的语法,有了这些基本知识,可以看看正则表达式在JavaScript的应用了,在一切开始之前,看看RegExp实 ...
- JavaScript 正则表达式上——基本语法
定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...
- javascript正则表达式简介
javascript正则表达式 javascript正则表达式 regular expression是一个描述字符模式的对象: ECMAScript中的RegExp类表示正则表达式: String ...
- javascript正则表达式(一)——语法
前言 js中类RegExp类表示正则表达式,具有强大的模式匹配.文本检索和替换功能.正则表达式的模式规则是由一个字符序列组成,包括所有字母和数字在内,大多数的字符都是按照直接量匹配字符,某些特殊字符并 ...
- JS正则表达式---分组
JS正则表达式---分组 之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解 但是今天我又遇到了一个坑,可能是自己不够细心的原因吧,今天就着重和大家分享一下javascript正则表达 ...
随机推荐
- 理解SQL SERVER中的逻辑读,预读和物理读
转自:https://www.cnblogs.com/CareySon/archive/2011/12/23/2299127.html 在我的上一篇关于SQL SERVER索引的博文,有圆友问道关于逻 ...
- Unity 脚本的执行顺序
在Unity脚本中常用到的函数就是下面这些,他们的顺序也是按照箭头的方向执行的. Awake ->OnEable-> Start -> FixedUpdate-> Update ...
- myeclipse连接并运行sql文件
1:在工程目录上右键>new >SQL File ,写入sql 2:在sql文件上面右键>execute sql files 3:选择数据库类型,并点击create创建一个连接: ...
- resume 简历
1:uestc社会实践平台,sql,mapper.xml,,图片验证码,读写excel,excel和list,数据库的转化. 2:购物网站,全代码,平台搭建,服务发布,远程数据库连接,前端,搜索,支付 ...
- [adt]python实现栈-体验数据结构
经常使用py的一些数据结构,如list,及list的一些方法. 还有hash表等. 各类数据结构方法用的很6,然而不知道是底层是怎么实现的. 基于此,就开始研究一下py实现一些数据结构, 以便于对计算 ...
- POJ1062:昂贵的聘礼(枚举+迪杰斯特拉)
http://poj.org/problem?id=1062 Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为 ...
- POJ3096:Surprising Strings(map)
http://poj.org/problem?id=3096 for循环真是奇妙! #include <string.h> #include <stdio.h> #includ ...
- PAT 1040 Longest Symmetric String[dp][难]
1040 Longest Symmetric String (25)(25 分) Given a string, you are supposed to output the length of th ...
- 阿里云小规模web集群分享(电商)
计算基础资源使用阿里云ECS.OSS.RDS.mysql中间件.CDN 原则是尽量少改动代码来实现web集群 1.负载均衡器: a)负责处理所有请求 b)http动态请求分配到后端web服务器 c)维 ...
- end=‘’
print('----------------') a = ['aa','bb','cc','dd','ee'] for i in range(len(a)): print(i,a[i])#默认换行 ...