2011-04-01 167 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