正则的初识

49 阅读2分钟
  • 用来处理字符串得规则

    • 只能处理字符串;
    • 它是一个规则:可以验证字符串是否符合某个规则得(test),也可以把字符串中符合规则得内容捕获到(exec/match......);
  • 正则得创建方式有两种

    //1、字面量得创建方式(两个斜杆之间包起来得,都是用来描述规则得元字符)
    let reg1 = /\d+/;
    
    //2、构造函数模式创建
    //两个参数:* 源字符串 * 修饰字符串,记住要
    let reg2 = new RegExp("\\d+");
    

正则表达式由两部分组成得:

  • 元字符:

    • 量词元字符:设置出现得次数

      1、 * 零到多次

      2、 + 一道多次

      3、 ?零次或者依次

      4、 {n} 出现n次

      5、 {n,}出现n到多次

      6、 {n,m}出现n到m次

    • 特殊元字符:单个或者组合在一起形成特殊含义

      1、 \ 转义字符(普通->特殊 ->普通)

      2、. 除了\n(换行符)以外得任意字符串

      3、^ 以哪一个元字符作为开始

      4、$ 以哪个元字符作为结尾

      5、\n 换行符

      6、\d 0到9之间得一个数字

      7、\D 非0到9之间得一个数字(D大小写得意思死相反的)

      8、\w 数字、字母、下划线中的任意一个字符

      9、\s 一个空白字符(包括空格、制表符、换页符)

      10、\t 一个制表符(tab键:四个空格)

      11、\b 匹配一个单词的边界

      12、x|y x或者y中的一个字符

      13、[xyz] x或者y或者z中的一个字符

      14、 [ ^xy] 除了x/y以外的任意字符串

      15、[a-z] 指定a-z这个范围中的任意字符串

      16、[ ^a-z] 除了a-z以外的任意字符串

      17、() 正则中的分组

      18、(?:) 只匹配不捕获

      19、(?=) 正向预查

      20、(?!) 负向预查

    • 普通元字符:代表本身含义的

  • 修饰符:

    • 正则表达式常用的修饰符:img

      i => ignoreCase 忽略单词大小写匹配

      m=>multiline 可以进行多行匹配

      g=>global 全局匹配