stu-zhouqian

(9)正则表达式和re模块(重点模块)

在我们学习这个模块之前,我们先明确一个关系。模块和实际工作的关系。

1)模块和实际工作时间的关系

1.time模块和时间是什么关系?time模块和时间本身是没有关系的,但是在实际的开发的过程中,我们使用time模块可以使我们更加的方便的操作时间,获取到时间的值。
2.re模块和正则表达式之间的关系
有了re模块就可以在python语言中操作正则表达式了。
就算没有了re模块,我们的正则表达式依然是存在的,只是我们re模块使得我们更好的更加方便的去操作正则表达式。
所有的语言(java c++ js等等)都是有正则的表达式,大部分正则表达式的语法都是相同的。
re模块可以使得我们去更好的操作正则表达式。
先学正则表达式,然后再学在python中怎么去使用和操作正则表达式的。
所以正则表达式是重点。re模块是重点。(这里必须重点掌握,这个阶段一定要挑战,冲刺正则表达式和re模块等等)

2)正则表达式

re模块--regex的缩写 正则表达式
正则表达式(重要性体现在以下几个方面):
自动化运维 --- 实际上也是和开发有关系,开发相应的自动化运维的软件
爬虫 ---- python学习的热门方向

正则表达式在线测试工具:http://tool.chinaz.com/regex

字符组 : [字符组]
在同一个位置可能出现的各种字符组成了一个字符组,在正则表达式中用[]表示
字符分为很多类,比如数字、字母、标点等等。
假如你现在要求一个位置"只能出现一个数字",那么这个位置上的字符只能是0、1、2...9这10个数之一。
正则 待匹配字符 匹配结果 说明
[0123456789] 8 True 在一个字符组里枚举合法的所有字符,字符组里的任意一个字符和"待匹配字符"相同都视为可以匹配
[0123456789] a False 由于字符组中没有"a"字符,所以不能匹配
[0-9] 7 True 也可以用-表示范围,[0-9]就和[0123456789]是一个意思
[a-z] s True 同样的如果要匹配所有的小写字母,直接用[a-z]就可以表示
[A-Z] B True [A-Z]就表示所有的大写字母
[0-9a-fA-F] e True 可以匹配数字,大小写形式的a~f,用来验证十六进制字符
1.元字符:
元字符 匹配内容
. 匹配除换行符以外的任意字符
\w 匹配字母或数字或下划线
\s 匹配任意的空白符(\n \t 空格)
\d 匹配数字(0-9)
\n 匹配一个换行符
\t 匹配一个制表符
\b 匹配一个单词的结尾
^ 匹配字符串的开始
$ 匹配字符串的结尾
\W 匹配非字母或数字或下划线
\D 匹配非数字
\S 匹配非空白符
a|b 匹配字符a或字符b
() 匹配括号内的表达式,也表示一个组,表示一个分组
[...] 匹配字符组中的字符
[^...] 匹配除了字符组中字符的所有字符
2. 量词:
量词 用法说明
* 重复零次或一次或更多次
+ 重复一次或更多次
? 重复零次或一次
{n} 重复n次
{n,} 重复n次或更多次
{n,m} 重复n到m次
3. . ^ $
正则 待匹配字符 匹配 结果 说明
海. 海燕海娇海东 海燕海娇海东 匹配所有"海."的字符
^海. 海燕海娇海东 海燕 只从开头匹配"海."
海.$ 海燕海娇海东 海东 只匹配结尾的"海.$"
4.* + ? { }
正则 待匹配字符 匹配 结果 说明
李.? 李杰和李莲英和李二棍子 李杰 李莲 李二 ?表示重复零次或一次,即只匹配"李"后面一个任意字符
李.* 李杰和李莲英和李二棍子 李杰和李莲英和李二棍子 *表示重复零次或多次,即匹配"李"后面0或多个任意字符
李.+ 李杰和李莲英和李二棍子 李杰和李莲英和李二棍子 +表示重复一次或多次,即只匹配"李"后面1个或多个任意字符
李.{1,2} 李杰和李莲英和李二棍子 李杰和 李莲英 李二棍 {1,2}匹配1到2次任意字符

注意:前面的*,+,?等都是贪婪匹配,也就是尽可能匹配,后面加?号使其变成惰性匹配

正则 待匹配字符 匹配 结果 说明
李.*? 李杰和李莲英和李二棍子 李 李 李 惰性匹配
5.字符集[][^]
正则 待匹配字符 匹配 结果 说明
李[杰莲英二棍子]* 李杰和李莲英和李二棍子 李杰 李莲英 李二棍子 表示匹配"李"字后面[杰莲英二棍子]的字符任意次
李[^和]* 李杰和李莲英和李二棍子 李杰 李莲英 李二棍子 表示匹配一个不是"和"的字符任意次
[\d] 456bdha3 4 5 6 3 表示匹配任意一个数字,匹配到4个结果
[\d]+ 456bdha3 456 3 表示匹配任意个数字,匹配到2个结果
6.分组 ()与 或 |[^]

身份证号码是一个长度为15或18个字符的字符串,如果是15位则全部

分类:

技术点:

相关文章: