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

  • 相关阅读:
    JDBC的使用流程
    typescript vscode /bin/sh: ts-node: command not found
    小程序打开app场景
    设置获取cookie,setCookie,getCookie
    解决IOS微信页面回退不刷新问题
    百度小程序添加编译
    百度小程序审核不通过,基础库问题
    Charles Mac 破解安装和证书安装成功抓包单个域名是unknown
    xhrFields实现跨域访问
    Mac上启动nginx报错:nginx: [emerg] bind() to 0.0.0.0:80 failed (48: Address already in use)
  • 原文地址:https://www.cnblogs.com/Decmber/p/5826403.html
Copyright © 2011-2022 走看看