【问题标题】:Regex for multiple URLs without clear pattern没有清晰模式的多个 URL 的正则表达式
【发布时间】:2023-01-10 04:12:47
【问题描述】:

我对使用正则表达式很陌生,所以我希望有人能帮助我。我想通过 RegEx 在 Google 跟踪代码管理器上设置一个事件,只要有人查看页面就会触发该事件。我正在尝试使用页面 URL 作为参数来执行此操作,以便在访问该 URL 时触发事件。它用于大约 1400 个位于同一子文件夹但具有不同页面名称的 url。例如:https://www.example.com/products/product-name-1https://www.example.com/products/product-name-2

将这些组合成一个 RegEx 公式的最佳方法是什么?

我尝试使用“|”分隔所有网址没有任何结果就签字。我也尝试过这种格式,但没有任何运气: (^/page-url-1/$|^/page-url-1/$|^/page-url-1/$|^/page-url-1 /$)

【问题讨论】:

    标签: regex events google-tag-manager tracking event-tracking


    【解决方案1】:

    您的尝试正在发生一些事情。首先,您没有转义“/”。这是一个保留字符或特殊字符,您需要在它前面加上一个以告诉引擎您需要该特定字符。它看起来像这样:

    /products/page-url-1
    

    我假设您使用的是 {{Page Path}},因此以上内容将匹配包含 /products/page-url-1 的任何路径。

    如果您希望事件在 /products 目录中的所有页面上触发,有一种更简单的方法。

    /products/.*
    

    这将做的是匹配您的 /products 目录中的任何页面。如果您在 /products 上有一个着陆页,这将在触发中被忽略。这 '。'意味着它将匹配 / 之后的任何字符,'*' 意味着它可以无限次地执行此操作。

    编辑:

    由于您不是在寻找所有的产品页面,您可以找到一个匹配的组并将它们全部列出。我怀疑所有的产品名称都会有很大的不同,并且不会共享任何公共路径元素,因此您必须列出所需的名称。

    /products/(product-url-1|product-url-2|product-url-3).*
    

    【讨论】:

    • 非常感谢你回到我身边。因此,如果我只使用第一种模式,如下所示,它应该适用于所有 1400 个 url?事实上,我正在使用 {{Page Path}} /products/page-url-1/products/page-url-2/products/page-url-3/products/page-url-4 不幸的是我不能使用/products 目录中的所有页面,因为我需要将其应用于特定选择。
    • 您上面评论中的正则表达式将不起作用。您将需要使用 () 进行匹配组并使用 |分隔每一页。我编辑了我的答案以包括这个。此外,如果您的某个产品页面下方有更多页面,这也会捕获这些页面 ( /products/product-url-1/sub-url-1 )。如果您不想这样做,请从您的正则表达式中排除“.*”。
    • 这似乎现在有效 - 非常感谢!这已经困扰我好几个星期了,非常感谢您花时间回答我的问题
    • 没问题。很高兴它有所帮助。确保将其标记为已回答以供其他人查看。
    猜你喜欢
    • 1970-01-01
    • 2013-11-02
    • 1970-01-01
    • 2010-11-27
    • 2018-10-13
    • 1970-01-01
    • 2017-09-18
    • 2023-01-23
    • 2015-03-29
    相关资源
    最近更新 更多