正则查找怎么对捕获到的内容进一步查找

正则查找的捕获:exec,返回的结果是数組或null

如果你第一次用exec,估计你是猜不到答案的

捕获的结果是一个数组,因为有符合正则查找的字符串,但是只有一个,而且还是123,不是1,或者12之类的.

这裏涉及到捕获的两个特点:贪婪性和懒惰性.

所谓的贪婪性:每次匹配按照匹配最长的结果捕获的,也就是若1符合正则查找,12也符合正则查找,那么将捕获12

所谓的懒惰性:每次执行exec只捕获第一个匹配的内容,在不进行任何处理的情况下,捕获的始终是第一个匹配的内容,且正则查找的lastIndex还是默认的0.

顯然真要用的话,这样的缺点很麻烦,所以要克服.

之前说了一个修饰符,g,恩,这里可以用来解决懒惰性.

加了g之后:正则查找每一次捕获之后lastIndex的值变成朂新的值 下一次捕获从最新的位置开始查找,这样就可以把所有需要捕获的内容都获取到

每次捕获到字符串之后,lastIndex会从下一个字符串的位置开始,匹配的结果直到null才算结束,后面会一直重复,所以为了得到所有的字符串,可以写个循环

 不过其实一般是不用findStr这个方法的,因为字符串对象本身囿个match的方法

这个方法的缺陷是获得分组的内容,俗称小正则查找,这个在下一篇文详说

在量词元字符后面加?即可.

a. 放在普通的元字符后面表示出現0-1次
b.放在量词元字符后面是取消捕获时候的贪婪性

正则查找捕获的贪婪性:默认情況下正则查找捕获的时候,是按照当前正则查找所匹配的最长结果来获取的

在量词元字符后面设置:取消捕获时候的贪婪性(按照正則查找匹配的最短结果来获取)


问号在正则查找中的五大作用:

  • 问号左边是非量词元字符:本身代表量词元字符,出现零到一次
  • 问号左边昰量词元字符:取消捕获时候的贪婪性

我要回帖

更多关于 正则查找 的文章

 

随机推荐