• 正则表达式第二回--元字符、类


    元字符

    正则表达式里面包含两种东西,一种叫元字符,一种叫原义文本字符。

    这么说好像有点故作高深把话讲绕的感觉,简而言之,元字符就是关键字,原义文本字符就是自定义规则字。

    元字符,或者叫保留字,表示这些字已经被正则“抢先注册”了,也就是占用了。

    正则在抢先注册这些关键字的时候,已经尽量挑了一些比较冷门的字符,如果你就是非要使用这些字符作为自己创建规则的一部分,那么需要手动转义一下,避免与正则关键字发生冲突。

    常见的元字符如下:

    具意元字符--只匹配单个确切字符

        转义字符

      或

    ()   分组符

    {}   量词符

    []    类符

        换行符

        回车符

    边界匹配元字符--只用于定位,不算在规则里面(注意⚠️:这里的边界只是用来定位的,不参与替换规则,比如is表示一个小写的is单词,替换成IS的时候,单词边界是不参与的)

    ^    开头字符

      结尾字符

      单词边界字符boundary

    预定义类元字符--匹配一类符合条件的字符

      除换行符和回车符之外的任意单个字符

      数字digit

      非数字

      单词字符word,包括下划线在内,相当等于[A-Za-z0-9_]

      非单词

      空白符space

     非空白

    量词元字符--一种用于计数的字符

    出现任意次

    出现0次或1次

    至少出现一次

    {n} 具体出现n次

    {m,n}  出现m~n次,如{3,5}表示最少出现3次,最多出现5次

    {n,}   最少出现n次

    {0, n} 最多出现n次

    类表示一类字符,我们知道正则跟字符串是一一对应的,但是有时候我们想匹配多种情况,比如"A规则和B规则,只要有一个规则能匹配上就行了",这时候我们就需要类,它里面存放着多个规则,不同规则之间是一种“或”的关系。

    简单来说,类就是一堆规则,不是一个规则

    const reg = /[abc]/g

     上面这个简单的示例表示只要匹配到a或b或c任意一个就可以了,当然这个类也是可以取反的。

    const reg = /[^abc]/g

    这里表示,不属于a或b或c任意一个,即不属于这个类里面的任何规则。 

    在类里面,可以写单个规则字(如a,b,c,1,2,3这种),也可以写范围规则字。这里面所谓的范围规则字一把般只有三种,那就是0-9,a-z, A-Z。

    const reg = /a-zA-Z0-9/g

    这里面只有三个规则字,分别是a-z、A-Z、0-9。

    -并不是元字符,但是,当它左右同时连接了数字或字母时,它就是一个元字符。

    我们说类是进行范围匹配的核心,像之前的d,它能代表任意一个数字,也就是0~9任意哪个都行,实际上它等价于[0-9]。

    这种就是预定义类字符,他从类衍生出来,我们可以这么看:预定义类元字符,就相当等于一些常见的类的简写

    总结

    正则表达式只由两种东西组成:关键字自定义规则字。关键字包含四种:一是精确匹配的具意字符,二是只用于定位的边界字符,三是匹配多种情况,由类衍生出来的预定义类字符。自定义规则字,则是我们自己写的业务字符,如"6666", "Linda",'Jack'等等,四是用于计数的量词字符。

  • 相关阅读:
    安装wampserver2时出现的问题
    微信相关信息
    YII CDbCriteria总结
    discuz@功能的代码
    音乐搜索并生成播放功能
    php生成json和js解析json
    Discuz!提取文章标签
    ⑦ vue项目结构study
    ⑤ elementui 使用字符填充table空白表格项
    ④ keep-alive缓存组件,操作之后需要重新获取数据--activated
  • 原文地址:https://www.cnblogs.com/zhangnan35/p/12405444.html
Copyright © 2020-2023  润新知