1

我正在编写一个正则表达式来检查网站 URL,它应该检查以下情况: 通过:-www.example.com-example.com-www.example.com/something-example.com/something 并
阻止 所有

其他 url



除了一个案例(www.example)之外,它对所有事情都非常有效,我该如何处理这个案例
“www.example”不能通过

我的正则表达式:

^[a-zA-Z0-9][a-zA-Z0-9]+([.][a-zA-Z0-9]+)+(/.*)?$

有人可以帮忙吗?

谢谢。

4

5 回答 5

1

试试这个:

^(www\.)?(?!www)[a-zA-Z0-9]+\.[a-zA-Z]{2,6}/?[a-zA-Z0-9]+$
于 2013-03-27T09:28:05.830 回答
1

这是我能得到的最好的

(www.){1}[a-zA-Z0-9]+[.]{1}[\w]+[/\w]*

结果

www.example.com     - true
www.example.com/    - true
www.example.com/xyx     - true
www.example.com/xy/s/   - true
www.example.        - False
www.example         - False

请注意,这不会接受'example.com' Tested @ http://gskinner.com/RegExr/

于 2013-03-27T09:28:47.793 回答
0

尝试这个:

_^(?:(?:https?|ftp)://)(?:\S+(?::\S*)?@)?(?:(?!10(?:\.\d{1,3}){3})(?!127(?:\.\d{1,3}){3})(?!169\.254(?:\.\d{1,3}){2})(?!192\.168(?:\.\d{1,3}){2})(?!172\.(?:1[6-9]|2\d|3[0-1])(?:\.\d{1,3}){2})(?:[1-9]\d?|1\d\d|2[01]\d|22[0-3])(?:\.(?:1?\d{1,2}|2[0-4]\d|25[0-5])){2}(?:\.(?:[1-9]\d?|1\d\d|2[0-4]\d|25[0-4]))|(?:(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)(?:\.(?:[a-z\x{00a1}-\x{ffff}0-9]+-?)*[a-z\x{00a1}-\x{ffff}0-9]+)*(?:\.(?:[a-z\x{00a1}-\x{ffff}]{2,})))(?::\d{2,5})?(?:/[^\s]*)?$_iuS

不过,我不能要求信用;我从这里拉了它:

http://mathiasbynens.be/demo/url-regex

他们有一个合理的图表,其中包含针对每个表达式的每种情况的通过/失败的大量表达式。

于 2013-05-07T18:11:54.000 回答
0

这是 Django 1.5.1 中使用的实际 URL 验证正则表达式:

import re
regex = re.compile(
        r'^(?:http|ftp)s?://'  # http:// or https://
        r'(?:(?:[A-Z0-9](?:[A-Z0-9-]{0,61}[A-Z0-9])?\.)+(?:[A-Z]{2,6}\.?|[A-Z0-9-]{2,}\.?)|'  # domain...
        r'localhost|'  # localhost...
        r'\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}|'  # ...or ipv4
        r'\[?[A-F0-9]*:[A-F0-9:]+\]?)'  # ...or ipv6
        r'(?::\d+)?'  # optional port
        r'(?:/?|[/?]\S+)$', re.IGNORECASE)

这会处理 ipv4 和 ipv6 地址以及 GET 参数。

在这里的代码中找到,第 44 行。

于 2013-05-07T17:57:44.820 回答
-1

不是最好的正则表达式,但在许多情况下都有效:

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+[a-zA-Z]{2,6}(/.*)*$

编辑:

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+(com|org|info|biz|us)/?([^/]*)$

允许尾部斜杠:

^([a-zA-Z0-9]([a-zA-Z0-9\-]{0,61}[a-zA-Z0-9])?\.)+(com|org|info|biz|us)/?([^/]*)/?$
于 2013-03-27T09:28:51.023 回答