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

学习博主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中的多个邮箱,没有则返回空列表



(正则表达式的规则使用可以写一本书,这里只是对抓取邮箱练习的一个学习记录)


你可能感兴趣的:(学习过程记录)