如何用正则表达式解除url参数的结束?

问题描述 投票:0回答:2

我有一个脚本,应该在某个页面路径打开时触发。

问题:页面路径包含多个参数,包括参数“returnUrl”,返回访问的上一页。

这是我要检查的网址:

/cxsSearchApply?positionId=a0w0X000004IceYQAS&lang=en&returnUrl=https://example.com/cxsrec__cxsSearchDetail?id=a0w0X000004IceYQAS&lang=en&returnUrl=https://example.com/cxsrec__cxsSearch&lang=en

我最初使用此正则表达式代码在此页面上触发:

(cxsSearchApply.*)

但我有其他正则表达式代码,如:

(cxsSearchSearchDetail.*)

它们也会因为网址中包含的页面路径而触发...

我应该使用什么reggex来匹配url的第一部分,但在“returnUrl”之后没有任何内容?

regex url url-parameters
2个回答
1
投票

所以你想在cxsSearchApply之前匹配文本上的&returnUrl。您可以使用前瞻:

(cxsSearchApply.*)(?=returnUrl=)

然而,你真正想要的是在第一个&returnUrl之前匹配所有东西。所以你需要一个非贪婪的运算符:

(cxsSearchApply.*?)(?=returnUrl=)

同样,对于您的其他搜索,它应该不再匹配,因为它也只是查看第一部分:

(cxsSearchSearchDetail.*?)(?=returnUrl=)

我相信这会得到你想要的东西。


1
投票

“returnUrl”之后什么都没有

如果这是你想要的字面意思,你可以简单地做(.*)(&returnUrl=.*)并将第一个捕获组作为你的结果。

© www.soinside.com 2019 - 2024. All rights reserved.