热线电话:13121318867

登录
2019-03-20 阅读量: 604
正则表达式

re模块的函数可以分为三个大类: 模式匹配,替换以及拆分

import re
text="foo bar \t baz \tqux"
re.split('\s+',text)

调用re.split正则表达式会先被编译,然后再在text上调用split方法。可以用re.compile自己编译regex以得到一个可以重用的regex对象

regex=re.compile('\s+')
regex.split(text)

如果希望得到匹配到的所有模式,使用findall

regex.findall(text)
[' ', ' \t ', ' \t']

findall 返回字符串中所有的匹配项

search 只返回第一个匹配项

match 只匹配字符串的首部

text="""
Dave dave@google.com
Steve steve@gmail.com
Rob rob@gmail.com
Ryan ryan@yahoo.com
"""
pattern = r'[A-Z0-9._%+-]+@[A-Z0-9.-]+\.[A-Z]{2,4}'

regex=re.compile(pattern, flags=re.IGNORECASE)

regex.findall(text)

['dave@google.com', 'steve@gmail.com', 'rob@gmail.com', 'ryan@yahoo.com']

m=regex.search(text)
m
<_sre.SRE_Match object; span=(6, 21), match='dave@google.com'>

text[m.start():m.end()]
'dave@google.com'

print (regex.match(text))
None
0.0000
0
关注作者
收藏
评论(0)

发表评论

暂无数据
推荐帖子