我正在尝试编写一个用于 Google Analytics(分析)目标的正则表达式,该表达式将匹配包含以下内容的网址:
?package=whatever
还有
/success
用户将首先访问类似的页面
www.website.com/become-client/?package=greatpackage
如果他们购买,他们将被引导至此页面
www.website.com/become-client/?package=greatpackage/success
因此基于此我可以使用以下正则表达式
\?package\=greatpackage/success
这应该与正确的目的地匹配,我可以在 Analytics 的目标设置中使用它来创建购买 Greatpackage 软件包的目标。
但有时网站会使用除了?package之外的其他参数。如?type、?media 等。
?type=business
生成这样的 URL
www.website.com/become-client/?package=greatpackage?type=business
如果他们购买,他们将被引导至此页面
www.website.com/become-client/?package=greatpackage?type=business/success
现在/success 部分已从 ?package 部分移开。我的问题是如何编写一个正则表达式,无论各部分之间可能存在什么其他参数,该正则表达式仍将匹配该 URL?
---更新----
@jonarz 提出了以下建议,它的作用就像一个魅力。
\?package\=greatpackage(.*?)/success
但是如果有两个产品名称几乎相同怎么办?例如greatpackage 和greatpackageULTRA。上面的代码将选择两者。如果无法更改产品名称,如何才能只选择其中一个?
最佳答案
解决编辑中引入的问题的正则表达式是:
\?package\=greatpackage((\?|\/)(.*?))?\/success(\/|\b)
这是一个测试:https://regex101.com/r/jS4cH5/1它似乎适合您的需求。
关于regex - 使用正则表达式匹配包含一个单词和另一个单词的 URL,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34220100/