100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > python正则表达式提取文本中的电话号码和邮箱

python正则表达式提取文本中的电话号码和邮箱

时间:2018-08-07 10:12:36

相关推荐

python正则表达式提取文本中的电话号码和邮箱

代码:

#! python3importpyperclip,rephoneregex=pile(r'''(\d{3}|\(\d{3}\))? # area code(\s|-|\.)? # separator(\d{3})# first 3 digits(\s|-|\.) # separator(\d{4})# last 4 digits(\s*(ext|x|ext.)\s*(\d{2,5}))? # extension''', re.VERBOSE)emailregex=pile(r'''([a-zA-Z0-9._%+-]+#username@ #@symbol[a-zA-Z0-9.-]+ #domain name(\.[a-zA-Z]{2,4})#dot-something)''',re.VERBOSE)text=str(pyperclip.paste())matches=[]print(phoneregex.findall(text))forgroupsinphoneregex.findall(text):print(groups) phonenum='-'.join([groups[0],groups[2],groups[4]])ifgroups[7] !='':phonenum+=' x'+groups[7]matches.append(phonenum)forgroupsinemailregex.findall(text):matches.append(groups[0])iflen(matches)>0:pyperclip.copy('\n'.join(matches)) print('copied to clipbpard:') print('\n'.join(matches))else:print('no phone numbers or eamil addresses found.')

输出:

[('800', '-', '420', '-', '7240', '', '', ''), ('415', '-', '863', '-', '9900', '', '', ''), ('415', '-', '863', '-', '9950', '', '', '')]

('800', '-', '420', '-', '7240', '', '', '')

('415', '-', '863', '-', '9900', '', '', '')

('415', '-', '863', '-', '9950', '', '', '')

copied to clipbpard:

800-420-7240

415-863-9900

415-863-9950

info@

media@

academic@

info@

说明:

书中r'''之后有个括号,所以findall会先返还整个匹配成功对象,后面的大括号同理,extension部分先返回整个括号匹配的,在返回两个小括号匹配的

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。