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个分组的子表达式,若是它经匹配。不然指的是八进制字符码的表达式。
- 分组匹配
分组匹配通常使用(),被括起来的表达式将做为一组,上面所说的只是针对单个字符串,若是须要匹配多个字符串,则用到了分组匹配。先匹配成功所有正则,再匹配成功的局部内容提取出来