正则表达式 regular expressions start

 

                                                正则表达式

                                                                                regular expressions start

正则表达式-介绍

通配符的增强版

他所作的事情是帮你匹配指定规则的字符串

 

正则表达式-工具

正则在线测试:https://regex101.com/ (推荐)

VS Code:点选搜索框右侧按钮(本地)

 

正则表达式-限定符

“?”  {前面字符出现0次或1次}

        如:used?  可以匹配use/used

 

“*”  {匹配0个或多个前面字符}

        如:ab*c  可以匹配ac/abc/abbbc 等

 

“+”  {匹配出现1次及以上字符}

        如:ab+c  可以匹配abc/abbbc 等

 

“{…}”  {精确匹配指定出现次数的字符}

         如:ab{2}c    指定字符b出现2次,可以匹配abbc ,

             ab{2,4}c   指定字符b出现2-4次之间(含),可以匹配abbbc,

             ab{2, }c   指定字符b出现2次以上,可以匹配abbbc

 

需要限定多个对象:

“()”  {将()内整体作为一个对象}

              如:(ab){2}c    指定字符ab出现2次,可以匹配ababc ,

 

正则表达式-或运算

“ | ”  {匹配左侧或右侧字符}

        如:a_(cat|dog)  可以匹配a_cat/a_dog

正则表达式-字符类

“ [ ] ”  {匹配的字符只能取自于[ ]内}    仅由[ ] 内字符构成的字符

           如:[abc]+   可以匹配abc_ abbbbc  acccb 

          [ a-z ] 所有小写字母 [ 0 -9 ] 所有数字 [ a-zA-Z0-9]所有字母和数字

          [ ^0-9 ] 所有非数字字符(含换行)

 

正则表达式-元字符

正则预先定义好的一些常用字符类型,如数字、空白、单词开头、结尾

谓之“元字符”

“\”开头

 

“\d”  {数字字符}     等同于[0-9]         如:\d+

“\w”  {单词字符}     单词字符(英文、数字、下划线),即所有英文字符

“\s”  {空白符}       包含换行和Tab      如:\s+

“\D”  {非数字字符}     等同于[^0-9]     如:\D+

“\W”  {非“单词”字符}   非英文字符       如:\W+

“\S”  {非空白字符}   

“.”   {任意字符}    不含换行             如:.*  即除了换行的所有字符

两个特殊:

“^”   {匹配行首}                                         如:^a 匹配行首的a

“$”   {匹配行尾}                                         如:$a 匹配行尾的a

正则表达式-贪婪与懒惰匹配

贪婪匹配:尽可能多的匹配出结果,按最大范围匹配,反之懒惰匹配

如:

待匹配字符:<span><b>This is a test</b></span>

“ <.+>” :结果:全部匹配

“ <.+?>” :结果:仅蓝色部分

“?”  可以使贪婪匹配 变为 懒惰匹配

正则表达式-实例1:RGB颜色值匹配

十六进制RGB值

如:#000000  #ffffff

 

规律:

           取值a-fA-f0-9

    上述值出现6次

    \b 标识边界,防止如#ffffffffffff 不符合要求的被识别

 

  #[a-fA-f0-9]{6}\b

正则表达式-实例2:Ipv4地址匹配

如:

       192.168.0,1  (合法)

       This is a string (不合法)

       123.123.123   (不合法)

       256.1.1.1      (不合法)

 

规律:

       1、由四段数字构成,由“.” 隔开

       2、每段0~255,

             注意这里是数字字符,不是数字       

             第一位0或1,后两位是任意数字        [01]\d\d

             第一位2,第二位0-4,第三位任意      2[0-5]\d

             前两位25,第三位0-5                           25[0-5]

             每段可以是1位或2位                         \d?\d 可合并到 [01]?\d?\d

      3、前后边界匹配

 

\b((25[0-5] | 2[0-5]\d | [01]\d\d\)\.){3}((25[0-5] | 2[0-5]\d | [01]\d\d\)\b

正则表达式-小结

 

 

              视频:https://www.bilibili.com/video/BV12J411m7MG?from=search&seid=488807520486206024

              笔记pdf:https://gitee.com/ikunsdc/regular-expressions-start

 

猜你喜欢

转载自blog.csdn.net/m0_55331605/article/details/113808900