程序员

正则表达式

2019-01-07  本文已影响0人  独舞cc

原子 元字符 模式修正符为正则表达式三部分

原子

A全部打印字符和非打印字符(\n,\t等看不出来的)。

B转义字符:

除了a-z A-Z 0-9 _外的所有字符,在当做原子的时候,最好都加上反斜杠,来进行转义。可以将有意义的字符转成没有意义的普通字符(如将 ^ *等字符转成普通字符)。

假如你对其外的字符进行转义的话,很有可能将没有意义的字符转成有意义的字符,如\t(tab键)等。

C常见非打印字符

         \f换页符

         \n换行符  

         \r回车符

         \t制表符   

         \v垂直制表符

D常见普通字符转义为特殊字符

          \d匹配所有数字

           \D匹配所有非数字

           \s匹配任意一个空白符

           \S匹配任意一个非空白符

          \w匹配任意一个数字字母下划线

           \W匹配任意一个非数字字母下划线

           .代表任意原子

E   自定义原子表

          [0-9a-z]此类的

          [^0-9]代表非数字 ^为非的意思      -代表区间的意思

元字符

       注意\在不同语言中,在充当转义功能时是否在单双引号中也需要自己进行转义

       *代表其前面的字符可以出现任意次,包括零次

       +代表其前面的字符可以出现除零次以外的所有次数

       ?其前面的字符出现0次或者1次

        {m,n}代表其前面的字符出现最少m次,最多n次,包括m,n

        {m,}代表其前面的字符出现最少m次,最多次数不限

        {m}代表要求其前面的原子出现m次

        !!!!!但是注意,不可以出现 {,n}这样的东西,m的位置必须有值

       !!!!注意,只是说其前面的字符,仅指其前面一个

        |代表或的意思,但是它的优先级最低,例子:/hello|heihei/  匹配的是hello或者heihei两个整体,而非o与h两个字符。

       ^或者\A  要求字符的开始位置

       $或者\Z  要求字符的结束位置

        \b匹配单词边界

        \B匹配除单词边界以外的部分

        ()括号的意义:

              1改变优先级别            2将小原子变成大原子

              3反向引用     例子: \1匹第一个子模式   4子模式,将一个大模式划分成很多子模式

模式修正符

           i不区分大小写         m可以视为多行正则表达式

           s  .可以匹配所有符号,包括换行符,默认是不能匹配换行符的

          x忽略正则表达式中的空白

          .*  .+正则表达是很贪婪,会尽可能多匹配东西   .*?   .+?  可以取消贪婪模式

....正常匹配/\<b\>(\.\*)\<\/b\>/时,会从第一个匹配到最后一个,这就是贪婪,若取消后,则会匹配到第一个</b>就结束了。

     

上一篇 下一篇

猜你喜欢

热点阅读