1,再保险模块简介
再保险模块提供Perl风格的正则表达式模式,使Python语言拥有全部的正则表达式功能。
2,正则表达式模式
模式字符串使用特殊的语法来表示一个正则表达式:
正则表达式模式中的字母和数字匹配同样的字符串;多数字母和数字前加一个反斜杠时会有不同的含义;标点符号通常有特殊的含义,只有被转义时才匹配自身;反斜杠本身需要使用反斜杠转义。
^匹配字符串的开头
美元匹配字符串的末尾
。匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
[…]匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
[^…]匹配任意字符,除了换行符,当re.DOTALL标记被指定时,则可以匹配包括换行符的任意字符。
再保险*匹配0个或多个的表达式。
再保险+匹配1个或多个的表达式。
再保险吗?匹配0个或1个由前面的正则表达式定义的片段,非贪婪方式
再保险{n}匹配n个前面表达式。例如,“o{2}“不能匹配“Bob"中的“o",但是能匹配“food"中的两个o。
再保险{n}精确匹配n个前面表达式。例如,“o{2,}“不能匹配“Bob"中的“o",但能匹配“foooood"中的所有o !”o{1,}“等价于“o +“霸主地位;o{0},则等价于“o *“。
再保险{n, m}匹配n到m次由前面的正则表达式定义的片段,贪婪方式
| b匹配a或b
(重新)匹配括号内的表达式,也表示一个组
(? imx)正则表达式包含三种可选标志:我,m,或x。只影响括号中的区域。
(? -imx)正则表达式关闭,m,或x可选标志。只影响括号中的区域。
(?imx: re)在括号中使用我,m,或x可选标志
(?-imx: re)在括号中不使用我,m,或x可选标志
(? #…)注释
(?=re)前向肯定界定符。如果所含正则表达式,以…表示,在当前位置成功匹配时成功,否则失败。但一旦所含表达式已经尝试,匹配引擎根本没有提高;模式的剩余部分还要尝试界定符的右边。
(? !重新)前向否定界定符。与肯定界定符相反,当所含表达式不能在字符串当前位置匹配时成功。
(?比;重新)匹配的独立模式,省去回溯。
\ w匹配数字字母下划线
\ W匹配非数字字母下划线
\ s匹配任意空白字符,等价于[f \ t \ n \ r \]。
\ S匹配任意非空字符
\ d匹配任意数字,等价于[0 - 9].
\ D匹配任意非数字
\一匹配字符串开始
\ Z匹配字符串结束,如果是存在换行,只匹配到换行前的结束字符串。
\ z匹配字符串结束
\ G匹配最后匹配完成的位置。
\ b匹配一个单词边界,也就是指单词和空格间的位置,例如,“呃\ b”可以匹配“never"中的“呃”,但不能匹配“verb"中的“呃”。
\ B匹配非单词边界。“呃\ B”能匹配“verb"中的“呃”,但不能匹配“never"中的“呃”。
\ n \ t,匹配一个换行符。匹配一个制表符
\ 1…\ 9匹配第n个分组的内容。
\ 10匹配第n个分组的内容,如果它经匹配。否则指的是八进制字符码的表达式。
3,正则表达式实例
python匹配“python"
(Pp) ython匹配“Python"或“python"
(五个母音字母)匹配中括号内的任意一个字母
[0 - 9]匹配任何数字
[a - z]匹配任何小写字母
[a - z]匹配任何大写字母
[a-zA-Z0-9]匹配任何字母及数字
[^五个母音字母)匹配除五个母音字母字母外的所有字符
[^ 0 - 9]匹配除数字外的字符
4,再保险模块常用函数
re.compile(模式[、旗帜])
编译函数根据一个模式字符串和可选的标志参数生成一个正则表达式对象,正在表达式对象拥有一系列方法用于正则表达式匹配和替换。
模式:一个字符串形式的正则表达式
标记可选,表示匹配模式,具体参数为:
再保险。我忽略大小写
再保险。L表示特殊字符集\ w \ w, \ b \ b \ s \ s依赖于当前环境
再保险。米多行模式
再保险。年代即为”。”并且包括换行符在内的任意字符(“。“不包括换行符)