经过一次面试,正则被问的明明白白的。稍微有点后悔之前没有整理过这块功能。
故就此捡起。系统性的整理一下。
re
python特有的模块,我们从功能函数开始,后面将补充具体的匹配规则
基础匹配规则
[]内可包含需要匹配的元素
[A-Z][a-z][0-9][0-9A-F],仅可匹配一个元素;[^...]匹配非括号内的元素
字符
. 匹配换行符以外的任意字符
\w 匹配字母数字下划线
\s 匹配任意空白字符
\d 匹配数字
\n 匹配换行符
\t 匹配制表符
\b 匹配一个单词的结尾
^ $ 匹配字符串的开头/结尾
\W 匹配非字母下划线或数字
\D 匹配非数字
\S 匹配非空白符
b|a 匹配a或b
() 匹配其内的表达式也表示一个组 (abc|bcd|cde) (?:abc)表示找到一样abc的一组,但是不记录,不保存到变量中,否则可以通过x取第几个括号所匹配道德项,比如:(aaa)(bbb)(ccc)(?:ddd)(eee)可以用1获取(aaa)匹配到的内容,而3则获取到了(ccc)匹配到的内容,而$4则获取的是由(eee),匹配到的内容,因为前一对括号没有保存变量
量词
{} 一般用来匹配长度 \s{3}表示匹配3个空格 \s{1,3}匹配1-3个空格
贪婪匹配问题
贪婪匹配:在满足匹配规则时,尽可能长的进行匹配,加上?时将尽可能短的进行匹配
<.>