【问题标题】:regex to match everything except protocol from url正则表达式匹配除来自 url 的协议之外的所有内容
【发布时间】:2016-07-08 11:22:32
【问题描述】:

我有以下正则表达式模式: (?:http.?:\/\/)

这匹配来自 web url 的协议组件,我想要一个正则表达式来做相反的事情,以匹配除协议之外的所有内容,到目前为止,我的每一次尝试都没有成功。

因为我最终想要做的是检查两个 url 是否相同,无需协议,所以我可以这样做:

if url_1[regex] == url_2[regex]

【问题讨论】:

    标签: regex ruby-1.8.7


    【解决方案1】:

    应该这样做:

    /.*?\/\/(.*)/
    

    【讨论】:

    • 没有捕获组有没有办法做到这一点? (?!.*\/\/).* 几乎可以工作,但它仍然匹配最后一个 /,好的,这样做:(?!.*\/\/)\w.* 工作,问题已解决。
    【解决方案2】:

    您可以使用此正则表达式始终捕获可选的http://https:// 开头的部分:

    /^(?:[^:]+:\/\/)?(.+)$/
    

    RegEx Demo

    【讨论】:

      【解决方案3】:

      用这个拿第二组$2

      /^(?:[^:]*:\/\/)?(.*?)$/
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2023-03-10
        • 2021-05-26
        • 2022-08-21
        • 2018-05-26
        • 1970-01-01
        • 2019-11-12
        相关资源
        最近更新 更多