美文网首页
正则表达式极简入门

正则表达式极简入门

作者: 卡布奇洛猫 | 来源:发表于2018-12-10 22:27 被阅读0次

    基本概念

    字面量

    如图所示,字面量就是你想要匹配的字符串.


    字面量.png

    字符组(方括号表达式)

    如图所示,字符组由字符组起始符 '[' ,要匹配的模式与字符组结束符 ']'


    字符组.png

    锚位符

    锚位符由脱字符(^)与美元符号($)构成.

    脱字符将会使后面的字面量,字符组等,匹配到一段字符串的开头.而美元符号则会使它前面的字面量,字符组等,匹配到一段字符串的结尾.

    如图所示,普通匹配可以直接匹配到2334中233.然而使用了脱字符的正则表达式则不能匹配到2334中的233,因为$符号前面的是数字3,那么匹配的字符串末尾也必须要是数字三,锚位符的主要作用就是用来指定字符串的开头与结尾的.

    普通匹配.png 脱字符匹配.png

    量词

    量词是类似于循环一样的东西.诸如{m,n},*,+这些就属于量词.
    例如\d{2,3},它就表示匹配2到3次数字.而\d*则表示匹配0到多次数字


    捕获分组,向后引用与非捕获分组

    捕获分组我举三个例子,就能明白了.

    (\d)就是一个分组,在正则中,可以由\1代指分组1.


    1.png

    (\d)(\D),在这里面(\D)是分组2,由\2代指.


    2.png

    (\d(\D))(\d)在这里,最外层的\d是分组1,而在内层的\D则是分组2,[0-9]则是分组3.
    可以看出分组是按照从外往内,从左往右进行划分的.


    3.png

    所谓向后引用,则是在建立分组后,由\1,\2...\n这样的关键字进行引用的.

    非捕获分组则是不会被捕获的分组,即无法被\1,\2这样的向后引用关键字所指代的分组.
    例如: (?:\d),此时使用\1就无效了.


    这里有一个容易让人误会的地方,我举个例子:
    例如: (\d)\1
    在这里 \1并不是代表字符组\d,而是代表\d匹配的值,例如\d匹配到了2,那么\1就代表2.


    选择

    形如T|t这样的形式就是选择,它会在T与t之间选择一个进行匹配


    选择.png

    相关文章

      网友评论

          本文标题:正则表达式极简入门

          本文链接:https://www.haomeiwen.com/subject/mtfjhqtx.html