【完美解决】求一段nodejs的邮箱正则表达式,用于匹配采集匹配的。
发布于 7个月前 作者 heixiaoshan 920 次浏览

求一段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);  
        }
    });
}
3 回复

无效的正则表达式

var reg= /[^\@\s]{1,}\@(?:[^\s\.]{1,}\.){1,}(?:[a-z]{2,4}\.?){1,2}/gim ;   

正则换成这个有效。但是好像出来的东西有点不对头。 tem:
欢迎给我发邮件:[email protected] tem:class="">[email protected] tem:class="">[email protected] tem:class="">我留下我的邮箱你会给我回邮件吗?我要是的是长期电邮的那种,如果你不 是,不用给我回了![email protected] tem:class="">[email protected] tem:
[email protected] tem:class="">我每天打开电脑的第一件事情就是打开我的邮箱,查看有没有人给我联系, 六年了,我那些个熟悉的朋友,一个都没有给我发送过邮件,郁闷男+邮箱控+黑莓控等着您 的来信,[email protected]/[email protected] tem:想认识请电邮到:[email protected] tem:class="">[email protected] tem:class="">[email protected] tem:class="">我是来自成都的女生,我的邮件是[email protected] tem:class="">[email protected] tem:class="">[email protected] tem:class="">[email protected] tem:class="">[email protected] tem:class="">[email protected] tem:class="">[email protected] tem:[email protected] tem:class="">[email protected]

修改以下2处完美解决: var reg= /[\w!#$%&’+/=?^_{|}~-]+(?:\.[\w!#$%&'*+/=?^_{|}~-]+)@(?:\w?.)+\w?/gim; arr.push(tem[0]);

回到顶部