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

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

正则的理解

  1. 正则的懒惰性

每一次在exec()中捕获的时候,只捕获第一次匹配的内容,而不往下捕获了。我们把这叫正则的懒惰性,每一次捕获的开始位置都是从0开始

 var reg=/\d+/;

 var st="he45612llo12345"

cosole.log(reg.exec(st))----结果:45612

解决正则的懒惰性呢

修饰符g

正则的实例对象reg上有一个lastIndex属性 他是正则捕获的起始位置

 var reg=/\d+/g;

 var st="he45612llo12345"

cosole.log(reg.exec(st))----结果:45612

cosole.log(reg.exec(st))----结果:12345

cosole.log(reg.exec(st))----结果:null

  1. 正则的贪婪性

每一次匹配都是按照最长的出结果,我们把这种功能叫正则的贪婪性

 

 var reg=/\d+/;

 var st="hello12345"

cosole.log(reg.exec(st))----结果:12345

如何解决正则的贪婪性

在元字符量词后面加?

 var reg=/\d+?/g;

 var st="he45612llo12345"

cosole.log(reg.exec(st))----结果:4,5,6,1,2,1,2,3,4,5

补充 循环语句  for   for  in  while   do---while---

 var i=12;

var num=null;

while(i<11){

  sum=sum+i;

  i++;

}

console.log(sum)//先判断后执行

结果:null;

 var i=12;

var num=null;

do{

  sum=sum+i;

  i++;

}

while(i<11)

console.log(sum)//先判断后执行

结果:12

二 分组捕获 正则带()  在数分组的个数时从左往右

var reg=/(a)(b)/ 就相当于大正则里面带了两个小正则

第一组是(a) 第二组是(b)

分组捕获的作用

  1. 改变优先级
  2. 分组引用  \1,\2

\2代表和第二个分组出现一模一样的内容,\1代表和第一个分组出现一模一样的内容

 var reg/(\w)\1(\w)\2/

var st="ssdd"

var s=reg.test(st)

console.log(s)

Reg中的规则是第一个是一个分组 且是一个单词字符 第二个是个分组引用要求和第一组一模一样,第三个是第二个分组且是一个单词字符,第四个是一个分组引用,要求和第二组一模一样。

3.分组捕获

分组的捕获前提是正则存在分组,不仅把大正则的内容捕获到,把小正则的内容也捕获到。

 var reg=/(a)(b)/

/ab/ /a/ /b/

var st="absd"

console.log(reg.exec(st))//ab,a,b

怎样解除分组中分组捕获呢,如果你不想捕获某一个分组中的内容,在这个分组的前面加上?:就可以了

 var reg=/(a)(?:b)/

/ab/ /a/ /b/

var st="absd"

console.log(reg.exec(st))//ab,a

转载于:https://www.cnblogs.com/mo123/p/10139164.html

你可能感兴趣的文章
微信图片放大
查看>>
MySQL_join开发技巧
查看>>
centOS6.3下lamp搭建(提供全套软件包)
查看>>
数组拷贝
查看>>
cut
查看>>
Xen400培训-XenServer最佳实践
查看>>
直接在终端创建文件并写入内容,不用vi ,vim等编辑器来完成
查看>>
07-k8s-dns
查看>>
k8s-12-pod的健康检查
查看>>
Sublime Text 2 - 性感无比的代码编辑器!程序员必备神器!
查看>>
Visual Studio 2010更改颜色背景的方法
查看>>
Android 中 ListView 分页加载数据
查看>>
jMeter入门实例
查看>>
清除历史记录
查看>>
Linux下如何解压.tar.bz2格式的压缩包
查看>>
centos6.6 安装 glances
查看>>
Mybatis 动态SQL
查看>>
Mybatis的缓存机制详解
查看>>
Prawn Notes
查看>>
CENTOS 6.5 配置YUM安装NGINX
查看>>