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

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

正则分组的作用:

1.改变优先级

2.分组引用

3.分组捕获

 

细说下.

1.改变优先级

var reg = /^x|y$/;var regg = /^(x|y)$/;var str = "x1";reg.test(str); // true,这里其实匹配以x开头或者以y结尾regg.test(str); // false,这里其实匹配x或者y

 

2.分组引用

\2表示第二个分组,\1表示第一个分组,但是\2必须在出现在第二个分组的后面,因为只有知道第二个分组是,我才知道\2是啥

这里特别注意,\2的内容和第二个分组的内容必须一模一样

举例说明

var  reg = /(\d)([a-z])\1([A-Z])\2/;// 这里有3个分组,\1可以等价于(\d)所表示的值,也就\d表示2,那么\1也就只能是2而不能是3var str = "4a4Aa";var str1 = "4a3Aa";reg.test(str); // truereg.test(str); // false 这里的\1只能是4

 

3.分组捕获

正则捕获的时候不仅把大正则匹配的内容捕获到还能把小正则的内容捕获到

还有一个规则要记得,(?:)在分组中?:的意思是只匹配不捕获,注意的是如果用了这个,表示这个分组就不会产生引用

var reg =/(\d)(?:[a-z])([A-Z])\2/;// 这里的第二个分组用了?:,所以不产生引用,也就\2表示第三个分组([A-Z])reg.test("1aAA"); // truereg.test("1aAa"); // false

接下来用exec

var reg =/(\d)(?:[a-z])([A-Z])\2/;reg.exec("1aAA"); // ["1aAA", "1", "A"]// 第一项表示大正则,接下来就是小正则也就是小分组的内容"1aAA".match(reg); // ["1aAA"]// 也就是match只能匹配大正则的内容 /(\d)(?:[a-z])([A-Z](0))\2(p)/.exec("1aA0A0p"); // ["1aA0A0p", "1", "A0", "0", "p"] // 有小括号a套小括号b的时候,会先小括号a,然后再小括号里的小括号b,小括号a里面的完结之后才到下一个分组

 

转载于:https://www.cnblogs.com/2han/p/6373421.html

你可能感兴趣的文章
SOAP web service用AFNetWorking实现请求
查看>>
Java变量类型,实例变量 与局部变量 静态变量
查看>>
mysql操作命令梳理(4)-中文乱码问题
查看>>
Python环境搭建(安装、验证与卸载)
查看>>
一个.NET通用JSON解析/构建类的实现(c#)
查看>>
Windows Phone开发(5):室内装修 转:http://blog.csdn.net/tcjiaan/article/details/7269014
查看>>
详谈js面向对象 javascript oop,持续更新
查看>>
关于这次软件以及pda终端的培训
查看>>
jQuery上传插件Uploadify 3.2在.NET下的详细例子
查看>>
如何辨别一个程序员的水平高低?是靠发量吗?
查看>>
新手村之循环!循环!循环!
查看>>
ASP.NET中Request.ApplicationPath、Request.FilePath、Request.Path、.Request.MapPath
查看>>
正则表达式的用法
查看>>
线程安全问题
查看>>
集合的内置方法
查看>>
IOS Layer的使用
查看>>
Android SurfaceView实战 带你玩转flabby bird (上)
查看>>
Android中使用Handler造成内存泄露的分析和解决
查看>>
SSM集成activiti6.0错误集锦(一)
查看>>
个人作业
查看>>