2014-03-27 53 views
0

我有一個正則表達式匹配的URL正則表達式的一個或多個組 - 正則表達式匹配一個URL並沒有端口號

(^http.?://\b)(.*):(\d*)(.*) 

http://udara.com:8907/phpmyadmin/index.php 

上述表達式匹配。但是,在URL中未指定端口的情況如下:

http://udara.com/phpmyadmin/index.php?token=48bdb70fd4f1e6abe5ecb84192c1835e 

在這種情況下表達式不匹配。如何說零或更多的第三組。 注意可能存在的不是域udara.com IP地址

回答

1

嘗試以下方法:(^http.?://([a-zA-Z\-]+)(?::(\d*))?(.*)

EIDT:

^http.?://([a-zA-Z\-\.]+)(?::(\\d*))?(.*) - java的

​​- perl的(和regex101.com)

+0

我在線測試 http://regex101.com/。似乎正則表達式有錯誤 請注意,可能有IPs而不是域名udara.com –

+0

@Udara S.S Liyanage,請參閱編輯 – AlexR

+0

我拿(?::(\ d *))?從你的評論,並添加它我現有的表達。現在它按預期工作。 –

0

這可能有所幫助:

http://[a-z\.]+(:[0-9]+)*/.+