正则表达式一个或多个组 - 正则表达式匹配带端口号和不带端口号的URL

时间:2014-03-27 12:25:06

标签: java regex url

我有一个匹配网址的正则表达式

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

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

匹配上面的表达式。但是,可能会出现以下情况:URL中未指定端口:

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

在这种情况下,表达式不匹配。

如何说零或更多的第3组。 请注意,可能有IP而不是域udara.com

2 个答案:

答案 0 :(得分:1)

请尝试以下操作:(^http.?://([a-zA-Z\-]+)(?::(\d*))?(.*)

EIDT:

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

^http.?:\/\/([a-zA-Z\-\.]+)(?::(\d*))?(.*) - perl(和regex101.com)

答案 1 :(得分:0)

这可能会有所帮助:

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