用于以查询字符串结尾的URL的RegEx

时间:2015-11-25 14:47:17

标签: regex url

我一直在使用Ensighten进行标签管理。它管理条件(部署跟踪脚本的页面)的方式是分别使用RegEx作为协议,主机和路径。

现在,我目前的情况看起来有点像这样:

Protocol: ^(https?)$

Host: ^((www|www-qa)\.example\.com)$

Path: ^(/section-one/page/?|/section-two/page/?|/section-three/page/?)$

这很好用。但是,我被要求添加一个以查询字符串结尾的URL,这就是我遇到问题的地方。

基本上,我还需要使用以下格式定位URL:

http://www.example.com/section-one/page?&var123=456

如何编辑我的RegEx以获取包含此路径的URL路径?

/section-one/page?&var[any numbers, letters, symbols]

请注意,对于this / section-one /,我只想定位/ page或/ page +查询字符串,没有子页面。我不想定位特定的查询字符串。我还希望我的RegEx中的其他页面仍然包含在内。

我该如何写这个表达式?我必须坚持“必须匹配此RegEx”单表达式格式。

谢谢!

1 个答案:

答案 0 :(得分:0)

改善你所拥有的:

^/section-(one|two|three)/page/?$

反斜杠通常可以逃避问号的特殊含义,但这取决于风味。

^/section-(one|two|three)/page/?($|\?)

这假设上面的$不仅仅是一种形式,即它与网址的末尾相匹配。

如果你需要使用捕获括号来实际存储查询字符串,引擎应该为.*提供尽可能长的匹配,以便当然有:

^/section-(one|two|three)/page/?($|\?.*)