【问题标题】:Regex - don't match double-quotes unless a specific word appears before正则表达式 - 除非特定单词出现在前面,否则不匹配双引号
【发布时间】:2017-03-01 18:57:59
【问题描述】:

我正在使用以下正则表达式来匹配任何以 http:// 或 https:// 开头并后跟至少一个字符的字符串,不允许使用空格和双引号。

^(http|https):\/\/[^ "]+$

我需要做的是允许双引号,但前提是 http:// 或 https:// 后跟“somethinghere/”,例如:

http://somedomain.com?a="b"

不匹配

http://somethinghere/?a="b"

匹配

正则表达式应该如何实现这一点?

【问题讨论】:

    标签: regex


    【解决方案1】:

    我会采用这种方法:

    /^https?:\/\/(?:somethinghere[^ ]+|[^ "]+)$/
    

    基本上,它允许交替,“特殊”部分是第一个(可能会有更多例外),“一般”部分是最后的手段。 我希望这会有所帮助。

    【讨论】:

      【解决方案2】:

      试过^(http|https):\/\/[\w]+\/(\?[\w]=\"\w+\")*) 之类的东西。它还允许http://abcd/.If 你不想用+ 替换最后一个*

      您可以轻松尝试所有正则表达式here

      【讨论】:

        猜你喜欢
        • 2021-08-22
        • 1970-01-01
        • 1970-01-01
        • 2019-03-26
        • 2020-10-18
        • 1970-01-01
        • 2013-06-10
        • 1970-01-01
        相关资源
        最近更新 更多