目录
正则表达式
正则表达式是对字符串操作的⼀种逻辑公式,就是⽤事先定义好的⼀些特定字符、及这些特定字符的组合,组成⼀个“规则字符串”,这个“规则字符串”⽤来表达对字符串的⼀种过滤逻辑。
- 需要引⼊内置模块re
- 缺点:效率低下,能⽤字符串⽅法完成尽量使⽤字符串的⽅法
- 优点:编码简单
1.为什么使⽤正则表达式
使⽤场景
- 敏感词过滤
- ⼿机、邮箱等验证
- 爬⾍
2.正则表达式的组成
- 原⼦ 组成正则表达式的最⼩单位,任何字符都可以
- 量词 量词能够增强原⼦的描述能⼒
- 模式修正符
注意:
- 模式字符串⼀定要使⽤原⽣字符串,也就是⽤r开头的字符串。 r'www'
- 严格区分⼤⼩写
- 如果正则表达式中有{, }, [,],-,?,*,|^,$,.等做普通字符,则要将其转义
3.正则常⽤⽅法
3.1 re.match()
3.2 re.search()
3.3 re.findall()
3.4 re.split
3.5 re.sub和re.subn
3.6 re.group()和re.groups()
⽤于提取⼦元素,模式中⼀个括号就是⼀个⼦元素, group和groups只能在match和search⽅法⾥使⽤,通过返回的match object获取⼦元素。在模式串和sub和subn中的替换字符串中可以使⽤\1, \2, \3....来引⽤⼦元素
3.7 compile
当我们使⽤正则表达式时, re模块会⼲两件事
1、编译正则表达式,如果正则表达式本身不合法,会报错
2、⽤编译后的正则表达式去匹配对象
编译正则表达式使⽤compile
4.练习
⽤户名匹配:由数字、⼤⼩写字⺟、下划线 _ 和中横线 - 组成,⻓度为4到14位,并且不能以数字开头。
把下划线命名(也叫蛇形命名,所有单词都是⼩写,中间通过下划线连接),转化为⼩驼峰命名法(第⼀个单词⼩写,其余所有单词⾸字⺟⼤写)。例如'go_to_next_page',转化后改写为'goToNextPage'。要求:⽤正则表达式替换
匹配邮箱
匹配⼿机号
匹配身份证号。
匹配URL地址
匹配⽇期
匹配QQ号
匹配微信号
匹配⻋牌号
来源:CSDN
作者:风中月隐
链接:https://blog.csdn.net/u014586651/article/details/104796577