zoukankan      html  css  js  c++  java
  • 2019/1.2/正则的理解

    1.var reg=/./  var reg=/./

    前者代表任何一个字符,后者代表这个字符中得有一个

    2.?的使用

    如果单独一个字符后面带? var reg=/d?/  /n?/

    代表一个或0个字符的出现

    如果是量词+和*,{2,}后面带?取消正则的贪婪性  在捕获阶段

    3.捕获

      1.普通捕获 exec() macth()

      普通捕获也有懒惰行,给正则添加一个修饰符g 就可以解决,match 是将所有捕获的内容放在一个数组并返回。match就是对exec的一个简单的封装

      2.分组捕获 捕获方法还是exec和match

      正则在结构上发生了变化 ,加()

      var reg=/(a)(b)/

      Exec()和match()在非全局下分组捕获是相同的,在捕获的过程中即捕获大正则里的内容也捕获分组中的内容并都返回

      

      Exec()和match()在全局下分组捕获是不一样的,exec()不变。但是match只捕获大正则里的内容

     3.分组捕获的优势

      A 可以提升优先级

      B 可以捕获引用

      1 代表捕获1里面的内容  2代表分组2里面的内容

      前提是分组必须在引用前面,如果2在分组的前面代表普通的表达式???

      分组的结果存在正则类 RegExp的$number属性下

      1 和RegExp.$1二者都是分组引用

      1 只能使用正则表达式里面,RegExp.$1可以外面使用。都是在捕获完成的条件下。

      4. 在捕获的过程中怎样取消捕获分组中的内容

      在分组的前面加上?:就ok了

      ?:和?=的区别

      ?:取消捕获分组中的内容

      ?=  a(?=s)

      

      5.replace细说

      replace 是字符串的一个方法,他有两个参数,用后者将前者替换掉,并都返回一个新的字符串,但是没有改变原来的字符串。

      1. 如果第一个参数是字符串只改变一次

      2. 如果第二个参数是正则,捕获一次改变一次

      3.如果第二个参数是匿名函数,每捕获一次这个匿名函数就执行一次,return是什么,那就替换成什么,这个匿名函数的arguments有三个元素

      作者:晋飞翔

      QQ/微信同步:318080891

  • 相关阅读:
    java MessageFormat来生成模板字符串
    linux 用户身份切换
    linux 账号管理
    java 模块化
    mysql 存储过程执行while循环 Lost connection to MySQL server during query
    git 加速
    测试目录
    centos 安装gitblit
    centos7 安装mongoDB
    MySQL 批量修改库、表、列的排序规则,处理数据库大小写不敏感问题。
  • 原文地址:https://www.cnblogs.com/jinfeixiang/p/10210873.html
Copyright © 2011-2022 走看看