<?php
$s = file_get_contents("data/a.txt"); //文件1
$p = file_get_contents("data/b.txt"); //文件2// 把文件2的内容处理成正则表达式的规则串
$p = str_replace(".","\\.",$p);
$p = str_replace("*",".*",$p);
$p = str_replace("@",".+@",$p);
$pattern = split("[\r\n]+",$p);
if(empty($pattern[count($pattern)-1]))
array_pop($pattern);
$pattern = join("|",$pattern);// 匹配文件1的内容
preg_match_all("/$pattern/",$s,$regs);// 查看被找到的邮件地址
print_r($regs[0]);
?>
$s = file_get_contents("data/a.txt"); //文件1
$p = file_get_contents("data/b.txt"); //文件2// 把文件2的内容处理成正则表达式的规则串
$p = str_replace(".","\\.",$p);
$p = str_replace("*",".*",$p);
$p = str_replace("@",".+@",$p);
$pattern = split("[\r\n]+",$p);
if(empty($pattern[count($pattern)-1]))
array_pop($pattern);
$pattern = join("|",$pattern);// 匹配文件1的内容
preg_match_all("/$pattern/",$s,$regs);// 查看被找到的邮件地址
print_r($regs[0]);
?>
解决方案 »
- 发一激励贴
- 如何实现5秒钟自动刷新数据,和数据对比
- 我安装php的时候没有打开 --with-curlwrappers,现在该怎么办?在线等
- header产生的xml错误如何解决?
- 在变量前面加&是什么意思?
- 请教php+mysql中文字符乱码问题,麻烦大家给提提建议
- 请问我下载了一个购物系统。前台文件能打开,后打文件打开就成这样:
- 急求!!急求!!给出一个指定的日期20050531-0100,如何得到昨天,前天,上个小时,下个小时??我的方法怎么有问题?
- 对于不同的空间里的程序,能读写同一个COOKIE吗??
- 有支持PHP的 免费空间吗?
- 朝花夕拾旧难重提:汉字替换无法正常,总是乱码。
- 再发一次啊!!数据列表如何用颜色来标记??有没有更好的方法??
$email_text = "
[email protected]
[email protected]
[email protected]
";
$email_pattern = "
@hot*.com
@ww.com
@*.aa.bb
";
preg_match_all("(@[\w\-\.\*]+)",$email_pattern,$arr);
$pattern_arr = str_replace(array(".","*"),array("\\.","[\\w\\-]+"),$arr[0]);$pattern = "/(([\w\-]+)((".implode(")|(",$pattern_arr).")))(\s+|$)/is";
preg_match_all($pattern,$email_text,$r_arr);
echo "<xmp>";print_r($r_arr[1]);echo "</xmp>";
?>
@hot*.com
@ww.com
@*.aa.bb
其中*代表1到多个字符,@前面的字符任意这些规则有问题啊。而且*代表的是0到多个,+代表的是1到多个。
$pattern = "/(([\w\-]+)((".implode(")|(",$pattern_arr).")))(\s+|$)/is";
=>
$pattern = "/([\w\-]+(".implode("|",$pattern_arr)."))(\s+|$)/is";效率高一些
Warning: Unknown modifier 'j' ....
谢谢各位的指点。
$pattern = "/([\w\-\.]+(".implode("|",$pattern_arr)."))(\s+|$)/is";很少见到邮箱账号允许.出现的