博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
JavaScript:正则表达式 分组
阅读量:5104 次
发布时间:2019-06-13

本文共 2291 字,大约阅读时间需要 7 分钟。

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

代码:

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){
2}/; 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);

上面的\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);

现在不说也发现了,其实就是那个引用没有了。

 

转载于:https://www.cnblogs.com/hongdada/p/3370678.html

你可能感兴趣的文章
混沌数学之Arnold模型
查看>>
判断一个数是偶数还是素数 做相应处理并排序输出
查看>>
进制转换问题
查看>>
Docker 容器的数据管理
查看>>
驱动相关Error
查看>>
补坑:Prufer 编码总结
查看>>
mysql单节点大事务限制是哪个参数_java面试题汇总 转自多处
查看>>
ORACLE- PLSQL 游标的几种使用情况
查看>>
Maven依赖
查看>>
声笔飞码超字模式效率分析
查看>>
元旦快乐(2016-01-01)
查看>>
WCF服务部署到IIS上,然后通过web服务引用方式出现错误的解决办法
查看>>
jq地区联动
查看>>
paip.cache 缓存架构以及性能提升总结
查看>>
Atitit.atiDataStoreService v2 新特性
查看>>
Atitit.在线充值功能的设计
查看>>
解决CListCtrl闪烁及水平滚动条不能跟踪拖动的问题
查看>>
Thinkphp中使用display()方法显示视图模板,使用show()方法是显示文本内容
查看>>
搭建-以外网访问本地主机
查看>>
本地存储(cookie&sessionStorage&localStorage)
查看>>