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)
实例:
运行结果: