2012-07-30 81 views
-2

我要寻找的正则表达式的简单URL作为正则表达式的简单URL

  • http://www.google.com
  • http://www.yahoo.in
  • http://www.example.eu
  • http://www.example.net

没有子目录允许的。例如在这种情况下,它不能验证http://www.google.com/,http://www.yahoo.in/mail

有没有人知道任何正则表达式来做到这一点?

+0

是http://必需的,如果没有第三级域名存在,应该假设www? – Wug 2012-07-30 15:36:17

+0

您正在使用哪种语言?如果它具有解析URL的工具,请使用它并验证路径,查询和片段标识符是否为空。 – 2012-07-30 15:38:31

+0

好吧,我已经搜索了所有的互联网,并尝试了无数的正则表达式,但他们都没有工作。 http://不是必需的,它可以像www.google.com一样简单 – 2012-07-30 15:42:13

回答

0

我还是个菜鸟,但试试这个:

^http:\/\/[a-zA-Z0-9_\-]+\.[a-zA-Z0-9_\-]+\.[a-zA-Z0-9_\-]+$ 
+0

工作,谢谢。你能不能也给我没有http://的url的例子?例如,如果它只是www.google.com。在此先感谢 – 2012-07-30 15:46:07

+0

缺少两个字符:下划线('_')和短划线('-')。 – 0605002 2012-07-30 15:49:20

+0

只是使“http://”部分可选,你会得到这个:'^(http:\/\ /)?[a-zA-Z0-9 _ \ - ] + \。[a-zA-Z0 -9 _ \ - ] + \ [A-ZA-Z0-9 _ \ - ] + $'。此外,不要忘记标记答案,回答你的问题:) – 2012-07-30 15:49:27

-1

这一个应该做的:

^(https?:\/\/)?[0-9a-zA-Z]+\.[-_0-9a-zA-Z]+\.[0-9a-zA-Z]+$ 

这应该开始http://https://或未经协议名称的网址工作。

正则表达式也应该用作区分大小写。在这种情况下,它可以缩短一点:

^(https?:\/\/)?[0-9a-z]+\.[-_0-9a-z]+\.[0-9a-z]+$ 
+0

这忽略了权限内用户信息的可能性。有关详细信息,请参阅[关于URI方案的维基百科文章](http://en.wikipedia.org/wiki/URI_scheme#Generic_syntax)。 – ghoti 2012-07-30 16:00:43

0

如果你不在乎它是否是一个有效的URL,你可以使用:

\S*www\.\S+ 

所有的例子都包含www.接着是非空格字符,但这不太可能出现在普通单词中。