正则表达式排除 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 .
理想情况下,我正在考虑使用两个单独的表达式:
- 一个用于忽略动态 URL 部分之后的所有内容,例如 - http://example.com/ASDFG
- 动态URL之后匹配特定页面名称的另一种,例如 - 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 可视化正则表达式:
我正在为 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 .
理想情况下,我正在考虑使用两个单独的表达式:
- 一个用于忽略动态 URL 部分之后的所有内容,例如 - http://example.com/ASDFG
- 动态URL之后匹配特定页面名称的另一种,例如 - 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 similarlys?
ifhttps
is not required.
如果您希望 simplify/modify/explore 表达式,regex101.com. If you'd like, you can also watch in this link 的右上面板已对其进行说明,它将如何匹配一些示例输入。
正则表达式电路
jex.im 可视化正则表达式: