zoukankan      html  css  js  c++  java
  • ES5-正则表达式-15.10.2.5 选择项(Term)

    贪婪匹配:尽可能多的匹配;没有符号"?"
    非贪婪匹配:尽可能少的匹配; 有符号"?"
      ? 重复任意次,但尽可能少重复
      +? 重复1次或更多次,但尽可能少重复
      ?? 重复0次或1次,但尽可能少重复
      {n,m}? 重复n到m次,但尽可能少重复
      {n,}? 重复n次以上,但尽可能少重复

    举例:

      /a[a-z]{2,4}/.exec("abcdefghi")  返回 "abcde"

      /a[a-z]{2,4}?/.exec("abcdefghi")  返回"abc"

        

    疑问:


       /(aa|aabaac|ba|b|c)*/.exec("aabaac")  ===》["aaba","ba"](猜测:因为括号后面的星号,即括号里的字符串组可以重复0-n次,里面的字串组之间是|分割,可以选择组合,贪婪匹配,选择能匹配的最长(或字串组数多?)即选择了第一组和第三组组合,匹配了输入字串的aaba,正则中有一个左括号,代表有一个捕获,捕获时捕获该括号的最新字串,即组合字串中最后一个字串即ba????猜测。。。。)

      
       "aaaaaaaaaa,aaaaaaaaaaaaaaa".replace(/^(a+)1*,1+$/,"$1")  ==》aaaaa   (由多个a组成的字符串,并记下该字符串,以该串开始,重复0-n次,跟一个逗号,再跟一个该串结尾的重复1-n次的 匹配   并捕获该串,输出的为该串,也相当于逗号分隔的两字串(重复的同一个字符组成)的最大公约数)

      /(z)((a+)?(b+)?(c))*/.exec("zaacbbbcac") ===》  ["zaacbbcac","z","ac","a","undefined","c"] 与上上个例子同理

      

      /(a*)*/.exec("b")  ==》 ["","undefined"]

      /(a*)b1+/.exec("baaaac") ==》["b",""]

    正则表达式中 的意义:

      http://bbs.itheima.com/thread-7177-1-1.html

  • 相关阅读:
    HDU1205 吃糖果【水题】
    HDU2568 前进【水题】
    架构图初体验
    五层架构
    文件系统权限设计涉及范畴
    微服务
    领域驱动设计
    容器技术Docker
    架构总结
    仓储模式的简单理解
  • 原文地址:https://www.cnblogs.com/Decmber/p/5826403.html
Copyright © 2011-2022 走看看