正则表达式排除 URL 动态部分后的结果

Regex to exclude results after dynamic part of URL

我正在为 Matomo 分析平台设置热图跟踪规则。我的 URL 部分将始终是动态的并且只包含大写字母,例如 - http://example.com/ASDFG。我可以用 http:\/\/example\.com\/[A-Z]+ 来解决这个问题。

但是跟踪子目录变得更加棘手,例如 http://example.com/ASDFG/page1

http:\/\/example\.com\/[A-Z]+ 不仅会跟踪 http://example.com/ASDFG 还会跟踪 http://example.com/ASDFG/page1 .

理想情况下,我正在考虑使用两个单独的表达式:

无需匹配 www 参数,因为分析平台会自动将其添加到前面。

写这两个表达式的最佳方式是什么?

我猜也许,

^https?:\/\/example\.com\/[A-Z]+\/?$
^http:\/\/example\.com\/[A-Z]+\/?$

或没有最后的斜线,

^https?:\/\/example\.com\/[A-Z]+$
^http:\/\/example\.com\/[A-Z]+$

可能需要第一个。

Demo 1


对于第二个,它会很简单,

^https?:\/\/example\.com\/[A-Z]+\/(?:page1|page2|page3)\/?$
^http:\/\/example\.com\/[A-Z]+\/(?:page1|page2|page3)\/?$

对于多个页面,并且

^https?:\/\/example\.com\/[A-Z]+\/page1\/?$
^https?:\/\/example\.com\/[A-Z]+\/page2\/?$
^https?:\/\/example\.com\/[A-Z]+\/page3\/?$

一页一页。

Demo 2

You can also remove the \/? at the end, if it'd be unnecessary, and similarly s? if https is not required.


如果您希望 simplify/modify/explore 表达式,regex101.com. If you'd like, you can also watch in this link 的右上面板已对其进行说明,它将如何匹配一些示例输入。


正则表达式电路

jex.im 可视化正则表达式: