求一段nodejs的邮箱正则表达式,用于匹配采集匹配的。 多谢,我试了很多正则都无效。 代码如下:
request = require('request');
var qHref= "http://www.douban.com/group/topic/10712106/";
//定义函数
var getAHref = function(htmlstr){
// var reg = /<a.+?href=('|")?([^'"]+)('|")?(?:\s+|>)/gim; //有效
var reg= /^([a-zA-Z0-9_\.\-])+\@(([a-zA-Z0-9\-])+\.)+([a-zA-Z0-9]{2,4})+$/; //无值
var arr = [];
while(tem=reg.exec(htmlstr)){
console.log("reg.exec(htmlstr)"+reg.exec(htmlstr));//好像没有进来执行
console.log("tem[1]"+tem);//好像没有进来执行
arr.push(tem[2]);
}
return arr;
}
exports. sp = function(){
request.get({url:qHref,headers:{'User-Agent': 'request'}}, function (error, response,data) {
console.log('response.statusCode:'+response.statusCode);
if (!error && response.statusCode == 200) {
// console.dir(data);
var content = data;//获取到网页内容
var hrefs=getAHref(content);//获取链接
console.log(hrefs);
}
});
}
无效的正则表达式
var reg= /[^\@\s]{1,}\@(?:[^\s\.]{1,}\.){1,}(?:[a-z]{2,4}\.?){1,2}/gim ;
正则换成这个有效。但是好像出来的东西有点不对头。 tem:<br/>欢迎给我发邮件:guanertw@126.com tem:class="">myhyukie@hotmail.com tem:class="">letaapple@live.cn tem:class="">我留下我的邮箱你会给我回邮件吗?我要是的是长期电邮的那种,如果你不 是,不用给我回了!dearlaosun@126.com tem:class="">ycat@live.cn tem:<br/>wanglin401c@163.com tem:class="">我每天打开电脑的第一件事情就是打开我的邮箱,查看有没有人给我联系, 六年了,我那些个熟悉的朋友,一个都没有给我发送过邮件,郁闷男+邮箱控+黑莓控等着您 的来信,gupem@163.com/yothox@gmail.com tem:想认识请电邮到:shuyang_7@sina.com tem:class="">igupem@gmail.com tem:class="">whb.punk@163.com tem:class="">我是来自成都的女生,我的邮件是cydhy678@163.com tem:class="">zhuzhumao@msn.com tem:class="">352909232@qq.com tem:class="">danny_handsome@man.com tem:class="">1981065697@qq.com tem:class="">confessioninfame@163.com tem:class="">475448990@qq.com tem:zourifeng@live.com tem:class="">freetianlan@hotmail.com