为什么正则表达式匹配“:www.xxx.com”

时间:2018-08-17 08:53:27

标签: php regex

我从一个流行的网站上截取了以下代码,以进行PHP正则表达式验证。

我是新手,正在玩正则表达式。当我在URL前面放一个冒号“:”时,对于$ website如下(“:www.xxx.com”),该表达式仍然匹配。我不知道为什么这应该匹配。 (例如,$ website =“ zwww.xxx.com”不匹配,这是预期的)。我尝试了regex 101,并认为该行为可能与regex开头的\ b有关,但是即使删除了\ b,它在“:www.xxx.com”或“&www。”上仍然匹配。 xxx.com”,等等。非常感谢您的解释!

    <?php
    $website = ":www.xxx.com";
    if (preg_match("/\b(?:(?:https?|ftp):\/\/|www\.)[-a-z0-9+&@#\/%?=~_|!:,.;]*
        [-a-z0-9+&@#\/%=~_|]/i",$website)) {
        echo "Matched!";
    } else {
        echo "Not Matched!";
    }
    ?>

0 个答案:

没有答案
相关问题