使用正则表达式

Gra*_*ham 1 php regex

我正在尝试使用正则表达式匹配来自我自己网站的电子邮件.使用preg_match_all($pattern,$site,$array)我得到的结果是重复的.例如,使用:

$pattern = '/[\w-]+@([\w-]+\.)+[\w-]+/i';
Run Code Online (Sandbox Code Playgroud)

我明白了:

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
)
Run Code Online (Sandbox Code Playgroud)

那么,为什么我得到重复?这是我的正则表达式的问题吗?

我正在搜索的字符串是使用file_get_contents()方法的URL.我检查了字符串以确保它没有拉两次页面.

Jos*_*osh 7

如果您匹配HTML,则可能会匹配标记中的href和标记的内容.

<a href="mailto:uk@example1.com">uk@example1.com</a>
Run Code Online (Sandbox Code Playgroud)