2011-04-01 169 views
2

子域名后抢域(如果有的话),这是我的问题:http://regexr.com?2temn正则表达式:从URL

我敢肯定,这是很简单的一些你的正则表达式的主人。

干杯!

+0

请在这里发布问题,而不是将其链接到可能很快就会消失的外部页面。没有Flash播放器的人(iOS,任何人?)根本看不到问题。即使我关闭了我的Flash拦截器并查看了网站,但我仍然不明白你想要做什么。 – 2011-04-01 14:50:53

+0

你应该改变你的问题。链接到外部网站是好的,但问题必须全面,也没有这些额外的信息。同时命名你正在使用这个正则表达式。有很多口味的正则表达式... – 2011-04-01 14:54:29

+0

@Tim确认不适用于iOS – 2011-04-01 15:00:42

回答

3

这也适用于:

(?<=\.|)\w+\.\w+$ 

只用PHP进行测试。

+0

你可以用“ - ”锁定域吗? – Stephan 2011-04-01 15:22:53

+0

仅适用于'http:// www.example.com'或'http:// sub1.sub2.example.com'等,但如果URL中存在尾部/或路径,则失败。 – Kev 2011-04-01 15:29:26

1

正则表达式(通用形式)
/^(?:https?://)?(?:([\w_.-]+?).)*[\w_-]+\.\w+.+$/i

测试:

 
http://subdomain.domain.tld/foo/bar.html  => One match (subdomain) 
http://subdomain.subdomain2.domain.tld/bar  => Two submatches (subdomain, subdomain2) 
http://justdomain.tld       => NO match 

用C#测试。
C#中的正则表达式的版本:

^(?:http://)?(?:([\w+_.-]+?)\.)*[\w+_-]+\.\w+.+$ 

DEMO

+1

这不符合https网站。 – TheDude 2011-04-01 14:58:44

+0

我刚刚添加了对https站点的支持。但其他协议(FTP,IRC等)呢? pagewil没有缩小。 – Stephan 2011-04-01 15:07:45

+0

如果tld是两个单词,这不起作用。 Like something.co.uk – Kannaiyan 2017-11-01 17:50:24

1

尝试用:

(\w+\.\w+)[\r\n]+ 

2

抢域名,匹配串点内之前新行字符(可能)子域
实际上与
相同 抓取域名在顶级域名之前

它只是从URL中获取域名。

可能duplicate