我正在尝试使用正则表达式匹配来自我自己网站的电子邮件。使用preg_match_all($pattern,$site,$array)
我得到的结果是重复的。例如,使用:
$pattern = '/[\w-]+@([\w-]+\.)+[\w-]+/i';
我明白了:
Array
(
[0] => uk@example1.com
[1] => uk@example2.com
[2] => sales@woot.com
[3] => sales@woot.com
[4] => info@regex.com
[5] => info@regex.com
[6] => direct@yadayada.com.au
[7] => direct@yadayada.au
[8] => adrian@blahblah.com
[9] => adrian@blahblah.com
)
那么,为什么我会重复?这是我的正则表达式的问题吗?
我正在搜索的字符串是使用file_get_contents()方法的URL。我检查了字符串以确保它没有拉两次页面。
答案 0 :(得分:7)
如果你匹配HTML,你可能会匹配a标签中的href和a标签的内容。
<a href="mailto:uk@example1.com">uk@example1.com</a>
答案 1 :(得分:2)
如果你正在处理一个足够小的数据集,你可以将数组抛入array_unique(),这样你就可以返回一个删除了重复项的数组。