我正在寻找类似的东西:Extract part of URL with Google tag manager
但是在 url 的结尾有所不同,有些以/结尾,有些则不是。
我的网址:
/mobilabonnement/mobilabonnement-for-alle/smart-12-gb/
/mobilabonnement/mobilabonnement-for-ungdom/smart-ung-12-gb
/mobilabonnement/mobilabonnement-for-ungdom/smart-ung-12-gb/
我正在尝试提取“smart-12-gb”和“smart-ung-12-gb”。
function(){
var myRegexp = /(smart-|ung-|barn-)(.*)/g;
var result = {{Updated Page Path}}.match(myRegexp);
if(result !== null){
result[0] = result[0].replace("/","");
return result[0];
}else{
return null;
}
}
此功能有效,但我想知道是否可以在正则表达式中一次性完成?
最佳答案
如果 smart 在开头,您可以将 ung-
和 barn-
部分设为可选,然后不匹配正斜杠:\bsmart-(?:ung-|barn-)?[^\/]+
Regex demo
这将匹配:
\bsmart-
匹配单词边界 \b
后跟 smart-
(?:
非捕获组ung-
字面匹配 |
或 barn-
字面匹配 )?
关闭非捕获组并使其成为可选 [^\/]+
匹配 1+ 次而不是使用否定字符类的正斜杠 关于regex - 使用正则表达式使用 Google 标签管理器提取部分 URL,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/53389765/