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)


暂无数据
推荐帖子
2条评论
6条评论
7条评论