对于Google Analytics漏斗,我想编写一个与以下pti ID匹配的regEx:
1,5,8,13,14,49,79
例如,这些是有效的网址
但这些不是:
此正则表达式匹配以数字开头但与管道后的数字不匹配的网址:
.*OrderConfirmation.*pti=(1|5|8|13|14|49|79).*
有近100个ID,它们可以按任何顺序出现在变量中。有可能吗?
答案 0 :(得分:0)
您需要转义管道,因为它们是正则表达式中的保留符号:
.*OrderConfirmation.*pti=(1|1\|16)
将匹配/OrderProcess/OrderConfirmation.aspx?pti=1
和/OrderProcess/OrderConfirmation.aspx?pti=1|16
。
(从这里开始添加其余部分应该很容易。)
请注意,如果你这样写:
.*OrderConfirmation.*pti=(1|1\|16).*
然后表达式将匹配.*OrderConfirmation.*pti=1
或。* OrderConfirmation。* pti = 1 | 16` 后跟任何。如果您想允许其他参数(并非总是存在),您需要:
.*OrderConfirmation.*pti=(1|1\|16)($|&.*)
这意味着第一个表达式可以跟在字符串结尾或&
后面,后面可以跟着任何东西。
答案 1 :(得分:0)
您需要“字边界”正则表达式\b
:
.*OrderConfirmation.*pti=.*\b(1|5|8|13|14|49|79)\b.*
使用单词边界表示id 1与| 17 |不匹配。
在各种边缘案例的rubular上查看live demo。