正则表达式
1.正则表达式的简介
1.1 概念
正则表达式是对字符串操作的一种逻辑公式,就是用事先定义好的一些特定字符、及这些特定字符的组合,组成一个“规则字符串”,这个“规则字符串”用来表达对字符串的一种过滤逻辑
1.2 正则表达式的应用场景
- 表单验证(例如 : 手机号、邮箱、身份证… )
- 爬虫
2. 正则表达式对Python的支持
2.1 普通字符
数字、汉字、字母、下划线、以及没有特殊定义的符号,都是"普通字符"。正则表达式中的普通字符,在匹配的时候,只匹配与自身相同的一个字符。 例如:表达式c,在匹配字符串abcd时,匹配结果是:成功;匹配到的内容是c;匹配到的位置开始于2,结束于3。(注:下标从0开始还是从1开始,因当前编程语言的不同有可能不同)
2.2 match()函数
- match(pattern, string, flags=0)
- 第一个参数是正则表达式,如果匹配成功,则返回一个match对象,否则返回None
- 第二个参数表示要匹配的字符串
- 第三个参数是标致位用于控制正则表达式的匹配方式 如: 是否区分大小写,多行匹配等等
2.3 元字符
正则表达式中使用了很多元字符,用来表示一些特殊的含义或功能
一些方法书写或者具有特殊功能的字符,采用在前面加斜杠\进行转义的方法。
2.4 预定义匹配字符集
正则表达式中的一些表示方法,可以同时匹配某个预定义字符集中的任意一个字符。例如,表达式\d可以匹配任意一个数字。虽然可以匹配其中任意字符, 但是只能是一个,不是多个
2.5 重复匹配
有时候我们需要对某个字段重复匹配,例如手机号15633333333,这种情况可以使用表达式再加上修饰匹配次数的特殊符号{}。例如[abcd][abcd]可以写成[abcd]{2}
- {m}代表重复m次
- {m,n}代表至少重复m次,最多重复n次
- {m,}代表至少重复m次
- *代表重复0到任意次
- ?代表重复0次或1次
- +代表重复1次到任意次
2.6 位置匹配
有时候我们会对匹配的位置有要求: