在MySQL中选择格式错误的URL

时间:2017-09-10 18:49:01

标签: php mysql regex

我正在尝试选择其网站网址格式错误的用户。

我需要:

  1. 不选择空的“互联网”字段

  2. 选择网址格式错误的“互联网”字段。

  3. 我输入了一个格式错误的网址 - www.te st.com - 中间有一个空格,我用来测试。我尝试了这个查询,但结果列表是空白的。

    $sql = "SELECT * 
    FROM calendario 
    WHERE `Internet` NOT REGEXP '^(https?:\/\/|www\.)[\.A-Za-z0-9\-]+\.[a-zA-Z]{2,4}' AND `Internet` !='' ORDER BY Data DESC";
    

    有没有人知道MySQL URL验证的错误?

1 个答案:

答案 0 :(得分:1)

.因为元字符应使用双引号\\.转义或放入字符类[.]

以下查询应按预期工作:

SELECT * 
    FROM calendario 
WHERE `Internet` NOT REGEXP '^(https?:\/\/|www\\.)[-.A-Za-z0-9]+\\.[a-zA-Z]{2,4}' 
    AND `Internet` !='' ORDER BY Data DESC