【问题标题】:Regular expression one or more groups - regex to match a url with and without port number正则表达式一个或多个组 - 正则表达式匹配带有和不带有端口号的 url
【发布时间】:2014-03-27 12:25:06
【问题描述】:

我有一个正则表达式来匹配一个 URL

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

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

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

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

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

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

【问题讨论】:

    标签: java regex url


    【解决方案1】:

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

    EIDT:

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

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

    【讨论】:

    • 我正在使用regex101.com 在线测试。似乎正则表达式有错误注意可能有IP而不是域udara.com
    • 我拿了 (?::(\d*))?从您的评论中添加到我现有的表达式中。现在它按预期工作。
    【解决方案2】:

    这可能会有所帮助:

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-01-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多