目录
四、findall(pattern,string,flags)
一、re模块中常用函数
1、re.I 匹配大小写不敏感; 2、re.M 多行匹配,影响到^和$; 3、re.S 使. 匹配包括换行符在内的所有字符
import re
myStr='''<a href="http://www.baidu.com">百度</a>
<a href="http://www.google.com">谷歌</a>
<A href="http://www.baidu.com">百度</A>
<a href='http://www.tengxun.com'>腾
讯</a>
'''
print('输出:',re.findall('<a href=[\'"](.*?)[\'"]>(.*?)</a>',myStr))
print('re.I 输出:',re.findall('<a href=[\'"](.*?)[\'"]>(.*?)</a>',myStr,re.I))
print('re输出:',re.findall('<a href=[\'"](.*?)[\'"]>(.*?)</a>', myStr, re.I|re.M|re.S))
输出: [('http://www.baidu.com', '百度'), ('http://www.google.com', '谷歌')]
re.I 输出: [('http://www.baidu.com', '百度'), ('http://www.google.com', '谷歌'), ('http://www.baidu.com', '百度')]
re输出: [('http://www.baidu.com', '百度'), ('http://www.google.com', '谷歌'), ('http://www.baidu.com', '百度'), ('http://www.tengxun.com', '腾\n 讯')]
二、search(pattern,string)
只匹配一次
import re
print(re.search('[a-z][a-z]','12343ts54to').group())
print(re.search('1[3-9][0-9]{9}','13345678910a').group()) #包含关系
print(re.search('^1[3-9][0-9]{9}$','x13345678910')) #需要完全符合
ts
13345678910
None
三、match(pattern,string)
只匹配一次,必须从第一位开始 类似于search('^ ')
print(re.match('1[3-9][0-9]{9}','x14334555698'))
print(re.match('1[3-9][0-9]{9}','14334555698x').group())
None
14334555698
四、findall(pattern,string,flags)
匹配全部符合条件的字符,最为常用
myStr='abcd\nabcdu1234\nAjayush\niusdjs'
print(re.findall('^a\w+',myStr,re.I))
print(re.findall('^a\w+',myStr,re.I|re.M))
['abcd']
['abcd', 'abcdu1234', 'Ajayush']
五、compile 编译
import re
myStr='abcd\nabcdu1234\nAjayush\niusdjs'
pattern=re.compile('^a\w+',re.M)
print(pattern.findall(myStr))
['abcd', 'abcdu1234']