前字符串(?<content>[\s\S]*?)后字符串 【注:[\s\S]* 可匹配任意字符,也可替换成您需要的正则】
而对于火车头采集器一般邮箱(Email)地址的正则表达式如下:
(?<content>\w+([-+.]\w+)*@\w+([-.]\w+)*\.\w+([-.]\w+)*?)
简单解释一下就是\w+([-+.]\w+)*匹配由数字、字母、连接符和点组成的字符串
测试过程中发现如果邮箱地址后面带中文则中文也会被采集,故修改后的正则表达式如下(不会再采集中文):
(?<content>\w+([-+.]\w+)*@\w+([-.]\w+)*\.[a-z]{2,3}([\.][a-z]{2})?)
修改的思路来自以下一段PHP采集页面邮箱地址的小程序中的正则匹配规则:
- <?php
- $url='http://www.zhaoxi.net';
- $content=file_get_contents($url);
- function getEmail($str) {
- $pattern = "/([a-z0-9\-_\.]+@[a-z0-9]+\.[a-z0-9\-_\.]+)/";
- preg_match_all($pattern,$str,$emailArr);
- return $emailArr[0];
- }
- print_r( getEmail($content));
- ?>