正则表达式特殊字符

特殊字符:

1)  ^ $ * ? + {2} {2,} {2,5} |

2) [] [^] [a-z] .

3) \s \S \w \W

4) [\u4E00-\u9FA5] () \d


解释如下:

1)  ^ 表示:以后面跟着的字符开头

     . 表示:任一字符

    * 表示:个数不限

    $ 表示: 以前面的字符结尾

regex_str = "^a.*3$"  以a开头,中间任意字符(不限字符个数),以3结尾的字符串

2) line = "boobby123"

(1) () 表示: 字符串提取模式,用于提取子字符串

regex_str = ".*(b.*b).*" ,提取出来结果:bb  (默认贪婪匹配模式,字符串从右往左匹配)

(2)? 表示:设置为非贪婪匹配模式

regex_str = ".*?(b.*b).*" ,从左边开始一个个匹配,匹配到第一个b则进入正则匹配模式,不论中间多少个字符,遇到b则停止,提取出来结果:boobb(左边部分.*?(b限定了非贪婪匹配模式,但是右边b).*仍是贪婪匹配模式,从右往左匹配)

(3) regex_str = ".*?(b.*?b).*" ,提取出来结果:boob

3) + 表示:前面字符至少出现一次

regex_str = ".*(b.+b).*",前面任意字符直到遇到b,中间任一字符且出现且此字符至少出现一次,之后再遇到b, line =

"boobaby123"提取出来结果:bab,  line = "boobaaby123"提取出来结果:baab

4) {2} 表示:前面字符出现2次

      {2,} 表示:前面字符出现2次及以上

      {2,5} 表示:前面字符出现2次到5次

regex_str = ".*(b.{1}b).*",  line = "boobbbaaby123"提取出来结果:bbb

regex_str = ".*(b.{2}b).*",  line = "boobbbaaby123"提取出来结果:baab

regex_str = ".*(b.{3,}b).*",  line = "boobbbaaby123"提取出来结果:bbaab

regex_str = ".*(b.{2,5}b).*",  line = "boobbbaaby123"提取出来结果:baab

5) | 表示: 或

regex_str = "(bobby | boobby)123)",字符串等于bobby或者boobby 均符合条件,  line = "boobby123"提取出来结果:boobby

regex_str = "((bobby | boobby)123)",  line = "boobby123" 提取第一层字符串(.group(1))出来结果:boobby123,提取第二层字符串(.group(2))出来结果:boobby

6) [] 表示:(1)满足[]中的任一字符均可;(2)区间;(3)[.*] 表示.,表示*, 即特殊字符置于[]中则表示原意思

regex_str = "([abcd]oobby123)", 第一个字符串abcd中任一均可,line = "boobby123"提取出来结果:boobby123,line = "eoobby123"提取不出来

regex_str = "(1[48357][0-9]{9})",以1开头,第二个字符[48357]中任一均可,后面的字符[0-9]中任一均可,但必须出现9次 (PS:手机号码匹配模式)

regex_str = "(1[48357][^1]{9})",以1开头,第二个字符[48357]中任一均可,后面的字符为1以外字符([^1] 非1),但必须出现9次

7) \s \S

regex_str = "(你\s好)", 表示: 你好之间存在空格

regex_str = "(你\S好)", 表示: 你好之间存在一个字符,且该字符不是空格

regex_str = "(你\S+好)", 表示: 你好之间存在至少一个字符,且该字符不是空格

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • 前言 最先接触编程的知识是在大学里面,大学里面学了一些基础的知识,c语言,java语言,单片机的汇编语言等;大学毕...
    oceanfive阅读 3,190评论 0 7
  • 正则表达式的特殊字符 1.原子的筛选方式| 匹配两个或者多个分支选择[] 匹配方括号中的任意一个原子[^] ...
    007_2278阅读 993评论 0 0
  • 初衷:看了很多视频、文章,最后却通通忘记了,别人的知识依旧是别人的,自己却什么都没获得。此系列文章旨在加深自己的印...
    DCbryant阅读 4,103评论 0 20
  • #首先,python中的正则表达式大致分为以下几部分: 元字符 模式 函数 re 内置对象用法 分组用法 环视用法...
    mapuboy阅读 1,669评论 0 51
  • 从匹配中返回值 Match 对象 成功的匹配总是返回一个 Match 对象, 这个对象通常也被放进 $/ 中, (...
    焉知非鱼阅读 1,879评论 0 1