Python练习---正则表达式

1、 匹配一段文本中的每行的邮箱
y='123@qq.comaaa@163.combbb@126.comasdfasfs33333@adfcom'
import re
ret=re.findall('\w+@(?:qq|163|126).com',y)
print(ret)
['123@qq.com', 'aaa@163.com', 'bbb@126.com']
2、 匹配一段文本中的每行的时间字符串,比如:‘1990-07-12’;
time='asfasf1990-07-12asdfAAAbbbb434241'
import re
ret=re.search(r'(?P<year>19[09]\d)-(?P<month>\d+)-(?P<days>\d+)',time)
print(ret.group('year'))
print(ret.group('month'))
print(ret.group('days'))
1990
07
12
# 3、 匹配一段文本中所有的身份证数字。
a='sfafsf,34234234234,1231313132,154785625475896587,sdefgr54184785ds85,4864465asf86845'
import re
ret=re.findall('\d{18}',a)
print(ret)
['154785625475896587']
# 4、 匹配qq号。(腾讯QQ号从10000开始)  [1,9][0,9]{4,}
q='3344,88888,7778957,10000,99999,414,4,867287672'
import re
ret=re.findall('[1-9][0-9]{4,}',q)
print(ret)
['88888', '7778957', '10000', '99999', '867287672']
# 5、 匹配一个浮点数
import re
ret=re.findall('-?\d+\.?\d*','-1,-2.5,8.8,1,0')
print(ret)
['-1', '-2.5', '8.8', '1', '0']
# 6、 匹配汉字。             ^[\u4e00-\u9fa5]{0,}$
import re
ret=re.findall('[\u4e00-\u9fa5]{0,}','的沙发斯蒂芬')
print(ret)
['的沙发斯蒂芬', '']
# 7、 匹配出所有整数
a='1,-3,a,-2.5,7.7,asdf'
import re
ret=re.findall(r"'(-?\d+)'",str(re.split(',',a)))
print(ret)
['1', '-3']
posted @ 2017-06-26 18:42  云养猫  阅读(2859)  评论(1编辑  收藏  举报