正则表达式 re模块的使用

一 正则表达式

  首先, 我们在网页上进行行注册或者登陆的时候经常能看到一些格式上的错误提示. 比如:
你在注册百度账号的时候  https://passport.baidu.com/v2/?reg&regType=1&tpl=wk 输入用户
名随意的输入系统会提示你. 你的账号过长或者不允许使用中文等等操作. 那这种操作如果使
用我们现有的知识点是可以完成的. 但是完成的效果并不好. 写起来也不容易易. 尤其是对邮箱
的匹配. 电话号码的匹配. 那正则表达式就是专门来处理理类似问题的一种表达式. 英文全
称: Regular Expression. 简称 regex或者re. 但你要知道我们在使用python的re模块之前. 我
们首先要对正则有一定的了了解和认识. 就像我们使用time模块之前. 我们已经对时间有了一定
的认识.
正则表达式是对字符串操作的一种逻辑公式. 我们一般使用正则表达式对字符串进行匹
配和过滤. 使用正则的优缺点:
  优点: 灵活, 功能性强, 逻辑性强.
  缺点: 上手难. 一旦上手, 会爱上这个东西
工具: 各大文本编辑器一般都有正则匹配功能. 我们也可以去
http://tool.chinaz.com/regex/进行在线测试.
正则表达式由普通字符和元字符组成. 普通字符包含大小写字母, 数字. 在匹配普通字符
的时候我们直接写就可以了. 比如"abc" 匹配的就是"abc". 我们如果用python也可以实现相
同的效果. 所以普通字符没什什么好说的. 重点在元字符上.
元字符: 元字符才是正则表达式的灵魂. 元字符中的内容太多了了, 在这里里我们只介绍一些
常用的.
1. 字符组
  字符组很简单用[]括起来. 在[]中出现的内容会被匹配. 例例如:[abc] 匹配a或b或c
如果字符组中的内容过多还可以使⽤用- , 例例如: [a-z] 匹配a到z之间的所有字母 [0-9]
匹配所有阿拉伯数字
思考: [a-zA-Z0-9]匹配的是什么?
2. 简单元字符
  基本的元字符. 这个东⻄西⽹网上一搜一大堆. 但是常⽤用的就那么几个:

. 匹配除换行符"\n"以外的任意字符,若指定 flag DOTALL 则匹配任意字符,包括换行
\w 匹配 数字 字母 或者 下划线
\s 匹配任意的 空白符
\d 匹配数字
\n 匹配一个换行符
\t 匹配一个制表符
\b 匹配一个单词的结尾
^ 匹配字符串的开始,若指定flag MULTILINE 这种也可以匹配上(r"^a","\nabc\neee",flag=re.
MULTILINE
$ 匹配字符换的 结尾 \W 匹配非(字母或者数字或下划线) \D 匹配非数字 \S 匹配非空白符 a|b 匹配字符a 或者 字符 b () 匹配括号内的表达式,也表示一个组 [....] 匹配字符串组中的字符 [^...] 匹配除了字符组中字符的所有字符
* 匹配 * 号 前面的字符 0次或者 多次,

 

posted @ 2019-02-16 22:13  会飞的草帽  阅读(209)  评论(0编辑  收藏  举报