re模块的用法
1、re.S可以匹配转义符
re.findall('k.n','darken dark\nn')
只输出第一个darken中的ken
re.findall('k.n','darken dark\nn',re.s)
不仅输出darken中的ken,还输出了dak\nn中的k\nn
2、re.M匹配多行
re.findall(r'^ta','tan tb\ntab ta')
只返回第一行的ta,^表示行首的意思
re.findall(r'ta','tan tb\ntab ta')
3个ta都返回了
re.findall(r'^ta','tan tb\ntab ta',re.M)
此时第二行的行首ta也返回了,这就是多行匹配的用处
3、re.I大小写匹配
so easy!
4、re.X多行。。。和re.M类似,细节还没注意
5、()分组
s = r'\w{3}@\w+(\.com|\.cn)'
re.findall(s,'tdk@gmail.com')
返回.com,如何充分应用这个优势
str = 'A B=ab D'
s1 = r'A B=.+ D'
s2 = r'A B=(.+) D'
re.findall(s1,str)
re.findall(s2,str)
第一个返回的是 A B=ab D,而第二个只返回了ab,这对于提取同构数据中的异样值还有效,这也是findall相对于match的优势所在
6、match和search
都是返回对象的匹配,区别在于,match只匹配行首,而search全文匹配。
6、split函数
str='123+456-789*456'
re.split(r'[+\-*]',str)
返回123 456 789 456,该函数完成了根据指定符号进行断句的功能,由于[]中的-符号有别的用途,需要转义。
7、sub函数
re.sub(r'[abc]','t','tan')
返回ttn,也就是通过r'[abc]查找‘tan’,再用t替代查找到的[abc]。subn函数除了返回替换后的字符串,还返回替换的个数。
8、others
dir(re)可以查看re下的成员变量和属性方法
help(re)获得相关模块的帮助文档,可以具体到某个成员,如help(re.sub)查看re中的sub函数。