您的位置:首页 > 编程语言 > Python开发

初学python+selenium之路3:邮箱抓取中的正则表达式

2018-03-09 10:50 211 查看
学习博主python+selenium系列:http://blog.csdn.net/u011541946/article/details/68485981
其中涉及到邮箱抓取,采用正则表达式,具体的规则网上资料很多这里不赘述了。
假设text变量中存入任意格式邮箱地址
1)  r'^[0-9a-zA-Z_]{0,19}@[0-9a-zA-Z]{1,13}\.[com,cn,net]{1,3}$'
^代表匹配开始;[]中代表其中任意字符子表达式(不分次序);{}中代表位数;\.代表对特殊字符“.”的转义;$代表匹配结束
PS:匹配[]内的特殊字符不需要加反斜杠,[]外则需要;
     [.]内的‘.’就表示‘.’;外的不加反斜杠的‘.’表示除/n换行符之外的任一单字符

2) r'[\w]+@[\w\.-]+'
代表匹配方法1中更直观但也复杂,方法2中更简洁,同时没有位数限制

\w代表任意数字字母下划线;+代表匹配前一个字符或子表达式任意次;-代表一个区间
PS:由解释可知 [\w]+ 等于 \w+

1)
results = re.match(r'^[0-9a-zA-Z_]{0,19}@[0-9a-zA-Z]{1,13}\.[com,cn,net]{1,3}$',text)返回match对象,从字符串头开始出现匹配不到的则返回None(具体详解这边博文解释很清楚点击打开链接)
2)results = re.findall(r'[\w]+@[\w\.-]+',text)findall方法:返回一个列表结果,可以匹配text中的多个邮箱,没有则返回空列表

(正则表达式的规则使用可以写一本书,这里只是对抓取邮箱练习的一个学习记录)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息