我正在研究一个正则表达式表达式,该表达式将使网站主页符合以下条件(括号是可选字符串/字符):
Http(s)://(www.)example.com(/)(?parameter=value)
其核心目的是:
这是我想出的:
(https?:\/\/(?:www\.|(?!www))(example\.com)|www\.(example\.com))((\/?\?\S*)|(\/?\s))
我尝试过的每台RegEx测试仪都确认它正在工作(并且我尝试了许多其他可行的方法),但是我的网站上只有一个问题:
我正在使用此表达式在GTM的特定页面中触发代码。但是Google Analytics(分析)说RegEx与主页不匹配。
当有参数并且所有其他部分都匹配时,它确实起作用。更新我的GTM标签触发器时,由于某些原因,只有根域没有出现。
https://example.com/不匹配(问题在这里!)
https://example.com/?parameter=value匹配(按预期)
https://example.com/child-page不匹配(按预期)
问题出在哪里?感谢您的帮助。
答案 0 :(得分:1)
这似乎与提到的所有排列相匹配:
((?:https?:\/\/)?(?:www\.)?(example\.com))(\/?(?:\?\S*|(?!\S)))
https://regex101.com/r/YezL4h/1
扩展
( # (1 start) URL
(?: https?:\/\/ )?
(?: www \. )?
( example \. com ) # (2) Domain
) # (1 end)
( # (3 start) Parameters
\/?
(?:
\? \S*
| (?! \S )
)
) # (3 end)
-----------------------
如果Moogle不支持断言,则为:
((?:https?:\/\/)?(?:www\.)?(example\.com))(\/?(?:\?\S*|(?:\s|$)))
答案 1 :(得分:0)
GTM用于Web容器的内置变量:
页面主机名:提供当前URL的主机名部分。
页面路径:提供当前URL的路径部分。
页面URL:提供当前页面的完整URL。
如果使用“页面主机名”变量,则无需指定http(s)协议。
创建GTM页面视图触发器-此触发器在以下位置触发-一些页面视图
页面主机名>匹配正则表达式> ^(www\.)?example\.com$
+页面路径>匹配正则表达式> ^\/(\?.*)?$
如果确实需要指定http,则可以使用Page URL变量:
GTM页面浏览触发器-此触发器在以下页面上触发-部分页面浏览
页面URL>匹配正则表达式> ^https?:\/\/(www\.)?example\.com(\/)?(\?.*)?$