pyhton基础(13)正则表达式
正则表达式
正则表达式在线测试工具:http://c.runoob.com/front-end/854
使用正则表达式进行匹配的流程:

常用语法

re.match函数
re.match 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。
re.match(pattern, string, flags=0)
实例:

运行结果为:

注意:
re.match函数匹配返回的是一个re.Match对象,如果需要获取其中的字符串,需要使用group()或者groups()函数。group()用来获取整个正则表达式匹配到的字符串。groups()返回一个包含所有小组字符串的元组。group(num)表示返回第num个字符串。flags为正则表达式修饰符,默认flags=0,常用标志为I和M
举个例子讲一下flags修饰符:

运行结果为:

可以看到,运行结果不受到大小写和换行的影响,这个就是re.M | re.I的作用,后面其它函数若有使用到flags,也是一样的道理。
re.search方法
re.search 扫描整个字符串并返回第一个成功的匹配。
re.search(pattern, string, flags=0)
re.search和re.match用法基本一致,唯一的区别是:
re.match 只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回 None,而 re.search 匹配整个字符串,直到找到一个匹配。
re.sub检索和替换
re.sub(pattern, repl, string, count=0, flags=0)
参数:
pattern: 正则中的模式字符串。repl: 替换的字符串,也可为一个函数。string: 要被查找替换的原始字符串。count: 模式匹配后替换的最大次数,默认 0 表示替换所有的匹配。
实例:

运行结果为:

compile函数
回看我们的正则表达式流程,如下,是通过正则表达式对象去匹配结果的:

compile 函数用于编译正则表达式,生成一个正则表达式( Pattern )对象,供 match() 和 search() 这两个函数使用。
re.compile(pattern[, flags])
实例:

findall
在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。
注意: match 和 search 是匹配一次 findall 匹配所有。
实例:

运行结果为:

finditer
和 findall 类似,在字符串中找到正则表达式所匹配的所有子串,并把它们作为一个迭代器返回。
re.finditer(pattern, string, flags=0)
实例:

运行结果:

常用表达式
检验数字的表达式

检验字符的表达式

特殊需求表达式


浙公网安备 33010602011771号