正则表达式 - 除非之前出现特定单词,否则不要使用双引号

时间:2017-03-01 10:47:32

标签: regex

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

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

我需要做的是允许双引号,但仅当http://或https://后跟"某事/"时,例如:

  

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

不匹配

  

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

匹配

正则表达式应如何实现这一目标?

2 个答案:

答案 0 :(得分:2)

我会遵循这种方法:

/^https?:\/\/(?:somethinghere[^ ]+|[^ "]+)$/
基本上,它允许交替,“特殊”部分是第一个(以及更多例外),“一般”部分是最后的选择。 我希望有所帮助。

答案 1 :(得分:0)

尝试^(http|https):\/\/[\w]+\/(\?[\w]=\"\w+\")*)之类的内容。它还允许http://abcd/.If您不希望将*替换为+

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