正则表达式匹配域名

时间:2011-05-20 12:24:50

标签: php regex

需要正则表达式(使用PHP)来匹配域名。例子:

http://sub.domain.com/somefolder/index.html -> domain.com
somedomain.info -> somedomain.info
http://anotherdomain.org/home -> anotherdomain.org
www.subdomain.anothersubdomain.maindomain.com/something/ -> maindomain.com

3 个答案:

答案 0 :(得分:2)

这可能不是正则表达式的工作,而是适用于您选择的语言的现有工具。正则表达不是一个魔术棒,您可以在遇到涉及字符串的每个问题上挥手。您可能希望使用已编写,测试和调试的现有代码。

在PHP中,使用parse_url函数。

Perl:URI module

Ruby:URI module

.NET:'Uri' class

答案 1 :(得分:0)

你也可以使用这个:

((?>[a-z\-0-9]{2,}\.){1,}[a-z]{2,8})(?:\s|/)

它会匹配给定文本中找到的所有域名,同时返回第一组中找到的域名。

答案 2 :(得分:-1)

这解析了您可以检查的完整网址,匹配对象的第二个元素

(http|ftp|https):\/\/([\w\-_]+(?:(?:\.[\w\-_]+)+))([\w\-\.,@?^=%&:/~\+#]*[\w\-\@?^=%&/~\+#])?

适合我:)