首页 > 技术文章 > 6、Python3中的常用正则表达式

Real-m 2020-09-07 15:30 原文

  • [ ]
  1. 常用来指定一个字符集:[abc];[a-z]
  2. 元字符在字符集中不起作用:[amk$]
  3. 补集匹配不在区间范围内的字符
  • ^
  1. 匹配行首。除非设置MULTILINE标志,它只是匹配字符串的开始。在MULTILINE模式中,它也可以直接匹配字符串中的每个换行
  • $
  1. 匹配行尾,行尾被定义为要么是字符串结尾,要么是一个换行字符后面的任何位置
  • \
  1. 转译字符,后面可以加不同的字符以表示不同特殊意义,也可以用于取消所有的元字符
  2. \d匹配任何十进制数,相当于类[0-9]
  3. \D匹配任何非数字字符,相当于[^0-9]
  4. \s匹配任何空白字符,相当于类[\t\n\r\f\v]
  5. \S匹配任何非空白字符,相当于[^\t\n\r\f\v]
  6. \w匹配任何字母数字字符,相当于[a-zA-Z0-9]
  7. \W匹配任何非字母数字字符,相当于[^a-zA-Z0-9]
  • 重复
  1. 正则表达式的第一功能是能匹配不定长 的字符集,另一个功能是可以指定正则表达式的一部分重复次数,a = r'\d{n}'--其中{n}表示有几位数,也就是重复的次数
  • *
  1. 指定前一个字符可以被匹配两次或者更多次,而不是只有一次。匹配引擎会试着重复尽可能多的次数(不超过整数界定范围:20亿)
  2. a[bcd]*b--'abcbd'    #a,b中间有0-n个b、c、d都可以被匹配
  • +
  1. 表示匹配一次或多次,*匹配可以不出现,但是+匹配至少出现一次
  1. 匹配1次或0次,可认为它是标识某事物是可选的
  2. 贪婪模式:s = r'ab*'------和'abbbbbbb'匹配返回'abbbbbbb';非贪婪模式:s = r'ab*?'--------和'abbbbbbb'匹配返回'ab',也叫最小匹配模式
  • {m,n}
  1. 其中m和n是十进制整数,该限定符的意思是至少会有m个重复,至多到n个重复
  2. 忽略 m会认为下边界为0,忽略n会认为上边界无穷大(20亿)

推荐阅读