Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/google-chrome/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 如何编写匹配min或min=1的正则表达式?_Regex - Fatal编程技术网

Regex 如何编写匹配min或min=1的正则表达式?

Regex 如何编写匹配min或min=1的正则表达式?,regex,Regex,我有两个类似https://xxx.xxx.xxxxx?min和https://xxx.xxx.xxx?min=1。我想写一个正则表达式来匹配第一个url或第二个url 我试过写正则表达式 https://xxx.xxx.xxx(\?[a-z]{3}|\?[a-z]{3}|=1) 及 但这些都不起作用。预期结果是匹配https://xxx.xxx.xxxxx?min或https://xxx.xxx.xxx?min=1它不匹配,因为您的URL是https://xxx.xxx.xxxxx?min但

我有两个类似
https://xxx.xxx.xxxxx?min
https://xxx.xxx.xxx?min=1
。我想写一个正则表达式来匹配第一个url或第二个url

我试过写正则表达式

https://xxx.xxx.xxx(\?[a-z]{3}|\?[a-z]{3}|=1)


但这些都不起作用。预期结果是匹配
https://xxx.xxx.xxxxx?min
https://xxx.xxx.xxx?min=1

它不匹配,因为您的URL是
https://xxx.xxx.xxxxx?min
但是regex是
https://xxx.xxx.xxx(\?min | \?min=1)
(注意,输入中有5个
x
字符,正则表达式中有3个)


您还应该在正则表达式中将
替换为
\.
,因为
匹配所有字符。

您忘记了在正则表达式中转义斜杠

另外,这一个应该只接受您的案例:

https:\/\/(.*?)\?(min|min=1)$

请试一试。

使
=1
部件可选:

^https://xxx.xxx.xxx\?min(=1)?$

如果您只想匹配提供的URL,这个正则表达式可能会很有用

/^https:\/\/.+?\?(min=1|min)$/mg
^在行首断言位置

$在一行末尾断言位置

修改器:

m修饰符:多行。使^和$与每个的开始/结束匹配 行(不仅仅是字符串的开始/结束)

g修饰语:全局。所有比赛 (第一场比赛后不返回)


因此,模式之间的唯一区别是结尾处的
=1
?您似乎有不同数量的
x
s(第二个
之后的第一个url中有5个
x
s)。这是故意的吗?如果你想让它可靠,请使用URL解析器。如果你必须使用正则表达式,你可以使用类似的东西:
https:\/\/xxx\.xxx\.xxx\.min(?:=1)?
。除非我误解了这个问题,否则正则表达式
\.min
应该两者都匹配。如果你需要一个模式来匹配任何嵌入了
?min
的东西,你可以使用
*\?min.
@BobJarvis,它还可以匹配很多其他东西,我怀疑这不是OP想要的。@blow Fixed!如果您还需要精确匹配开头,只需在开头添加^https:\/\/(.*?)?(min | min=1)$
/^https:\/\/.+?\?(min=1|min)$/mg