在现在的我看来,带小挂号的就是分组,嗯。

代码:

 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:正则表达式 分组的更多相关文章

  1. JavaScript:正则表达式 分组2

    继续上一篇的写,这篇复杂点. 分组+范围 var reg=/([abcd]bc)/g; var str="abcd bbcd cbcd dbcd"; console.log(str ...

  2. javascript正则表达式分组捕获理解

    我们先来看一段js代码: var rquickExpr = /^(?:(<[\w\W]+>)[^>]*|#([\w-]*))$/; console.log(rquickExpr.ex ...

  3. 理清JavaScript正则表达式--上篇

    在JavaScript中,正则表达式由RegExp对象表示.RegExp对象呢,又可以通过直接量和构造函数RegExp两种方式创建,分别如下: //直接量 var re = /pattern/[g | ...

  4. Python自动化 【第十八篇】:JavaScript 正则表达式及Django初识

    本节内容 JavaScript 正则表达式 Django初识 正则表达式 1.定义正则表达式 /.../  用于定义正则表达式 /.../g 表示全局匹配 /.../i 表示不区分大小写 /.../m ...

  5. JavaScript正则表达式下——相关方法

    上篇博客JavaScript 正则表达式上——基本语法介绍了JavaScript正则表达式的语法,有了这些基本知识,可以看看正则表达式在JavaScript的应用了,在一切开始之前,看看RegExp实 ...

  6. JavaScript 正则表达式上——基本语法

    定义 JavaScript种正则表达式有两种定义方式,定义一个匹配类似 <%XXX%> 的字符串 1. 构造函数 var reg=new RegExp('<%[^%>]+%&g ...

  7. javascript正则表达式简介

      javascript正则表达式 javascript正则表达式 regular expression是一个描述字符模式的对象: ECMAScript中的RegExp类表示正则表达式: String ...

  8. javascript正则表达式(一)——语法

    前言 js中类RegExp类表示正则表达式,具有强大的模式匹配.文本检索和替换功能.正则表达式的模式规则是由一个字符序列组成,包括所有字母和数字在内,大多数的字符都是按照直接量匹配字符,某些特殊字符并 ...

  9. JS正则表达式---分组

    JS正则表达式---分组 之前写了一篇关于正则新手入门的文章,本以为对正则表达式相对比较了解 但是今天我又遇到了一个坑,可能是自己不够细心的原因吧,今天就着重和大家分享一下javascript正则表达 ...

随机推荐

  1. 理解SQL SERVER中的逻辑读,预读和物理读

    转自:https://www.cnblogs.com/CareySon/archive/2011/12/23/2299127.html 在我的上一篇关于SQL SERVER索引的博文,有圆友问道关于逻 ...

  2. Unity 脚本的执行顺序

    在Unity脚本中常用到的函数就是下面这些,他们的顺序也是按照箭头的方向执行的. Awake ->OnEable-> Start -> FixedUpdate-> Update ...

  3. myeclipse连接并运行sql文件

    1:在工程目录上右键>new >SQL File  ,写入sql 2:在sql文件上面右键>execute sql files 3:选择数据库类型,并点击create创建一个连接: ...

  4. resume 简历

    1:uestc社会实践平台,sql,mapper.xml,,图片验证码,读写excel,excel和list,数据库的转化. 2:购物网站,全代码,平台搭建,服务发布,远程数据库连接,前端,搜索,支付 ...

  5. [adt]python实现栈-体验数据结构

    经常使用py的一些数据结构,如list,及list的一些方法. 还有hash表等. 各类数据结构方法用的很6,然而不知道是底层是怎么实现的. 基于此,就开始研究一下py实现一些数据结构, 以便于对计算 ...

  6. POJ1062:昂贵的聘礼(枚举+迪杰斯特拉)

    http://poj.org/problem?id=1062 Description 年轻的探险家来到了一个印第安部落里.在那里他和酋长的女儿相爱了,于是便向酋长去求亲.酋长要他用10000个金币作为 ...

  7. POJ3096:Surprising Strings(map)

    http://poj.org/problem?id=3096 for循环真是奇妙! #include <string.h> #include <stdio.h> #includ ...

  8. PAT 1040 Longest Symmetric String[dp][难]

    1040 Longest Symmetric String (25)(25 分) Given a string, you are supposed to output the length of th ...

  9. 阿里云小规模web集群分享(电商)

    计算基础资源使用阿里云ECS.OSS.RDS.mysql中间件.CDN 原则是尽量少改动代码来实现web集群 1.负载均衡器: a)负责处理所有请求 b)http动态请求分配到后端web服务器 c)维 ...

  10. end=‘’

    print('----------------') a = ['aa','bb','cc','dd','ee'] for i in range(len(a)): print(i,a[i])#默认换行 ...