正则表达式re模块

1、正则表达式模块re:正则表达式

1.定义:正则表达式(或re)是一种小型的、高度专业的编程语言。编程

2.正则匹配之字符匹配:编程语言

  匹配的对象必须是字符串类型。正则匹配的方式主要有三种:spa

正则匹配方式一:re.findall(‘  ’,字符串)对象

匹配字符串中全部符合规则的字符串,并以列表的方式返回字符串

注意:findall若是使用了分组,则输出的内容是分组中的内容(也就是( )内的内容)加上?来启用‘不捕捉模式’,能够返回所有内容class

 

 

 

正则匹配方式二:re.search(‘   ’,字符串)语言

这个方式只会匹配一个值,匹配到就结束,无论后面有几个都再也不匹配,若是没有匹配到会报错,匹配到的结果须要经过group()取得。Print(re.search(  ).group()),结果是非列表对象。字符

正则匹配方式三:re.match(‘   ’,字符串)数字

这个方式从开头第一个字符开始匹配,若是第一个字符就匹配不上,直接返回的结果为None,匹配上了也须要group()取得结果。

等同于:re.match()==re.search(‘^...’,”字符串”)

 

 

经常使用元字符:

  • . 匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则能够匹配包括换行符的任意字符
  • ^ 匹配起始位置
  • $ 匹配终止位置
  • 匹配前面的字符0到屡次,能够没有
  • 匹配前面的字符1到屡次,最少有一个
  • ? 匹配前面的字符0-1次
  • \ 转义符 反斜杠后面跟元字符去除特殊功能, 反斜杠后面跟普通字母实现特殊功能
  • {} 匹配次数 如 {3}匹配3次,{1,5} 匹配1到五次
  • [] 或的做用 a[bc]d 匹配 abd acd ,除了-,非^,"" 里面的特殊符号没有任何意义

其余特殊意义的字符加字母:

  • \w 匹配包括下划线的任何单词字符。等价于'[A-Za-z0-9_]'。
  • \W 匹配任何非单词字符。等价于 '[A-Za-z0-9_]'。
  • \s 匹配任意空白字符,等价于 [\t\n\r\f].
  • \S 匹配任意非空字符
  • \d 匹配任意数字,等价于 [0-9].
  • \D 匹配任意非数字
  • \A 匹配字符串开始
  • \Z 匹配字符串结束,若是是存在换行,只匹配到换行前的结束字符串。c
  • \z 匹配字符串结束
  • \G 匹配最后匹配完成的位置。
  • \b 匹配一个单词边界,也就是指单词和空格间的位置。例如, 'er\b' 能够匹配never 中的 'er',但不能匹配 verb 中的 'er'。
  • \B 匹配非单词边界。'er\B' 能匹配 verb 中的 'er',但不能匹配 never中的 'er'。
  • \n, \t, 等. 匹配一个换行符。匹配一个制表符。等
  • \1...\9 匹配第n个分组的子表达式。
  • \10 匹配第n个分组的子表达式,若是它经匹配。不然指的是八进制字符码的表达式。
  • 分组匹配

分组匹配通常使用(),被括起来的表达式将做为一组,上面所说的只是针对单个字符串,若是须要匹配多个字符串,则用到了分组匹配。先匹配成功所有正则,再匹配成功的局部内容提取出来