正则表达式
应用场景:
匹配字符串规则 (字符串:用户输入、文件读取、网络传输)
表单验证:注册页面 、身份证号、手机号码、邮箱、银行卡号
从文件中获取想要的信息 爬虫,从网页中批量的获取数据(重要啊)。
字符组:
字符组是指一个字符上允许出现的字符
[0-9] 只允许出现0-9
[A-Z] 只允许出现A-Z
[A-z0-9] 匹配所有大小写字母及数字
[^0-9] 带' ^ ' 的字符组是指该位置不能出现0-9
元字符:
\w | 字母、数字、下划线 |
\t | Tab键 |
\s | 所有空白符(空格、Tab、回车) |
\n | 回车 |
\d | 数字[0-9] |
\b | 字符串两端 |
\W | 非字母、数字、下划线 |
\S | 非所有空白符(空格、Tab、回车) |
\D | 非数字 |
. | 除了换行符匹配所有 |
^ | 开始符 |
$ | 结束符 |
[] 字符组,具体内容
() 分组 例:'www\.(baidu|google)\.com' '\'转义符使 ' . '代表‘.’而不是匹配任意除了换行
| 或 包含关系中,把长的写在前面
正则匹配量词
量词 | 用法 |
{n} | n次 |
{n,} | 至少n次,最多无限 |
{n,m} | 至少n,之多m |
? | 0次或1次 |
+ | 匹配1次或多次 |
* | 匹配0次或多次 |
使用:
所有正则表达式的量词默认贪婪匹配
贪婪匹配:尽可能多的给你匹配(规则内)默认模式
非贪婪/惰性匹配 在正则表达式后面加'?'
'.*?'常用的非贪婪匹配
findall(?:正则表达式) 取消分则优先显示