2013-03-04 43 views
0

我使用正则表达式从登录页面的URL中使用广告ID之前的特定参数捕获广告ID。如何在正则表达式中使用OR运算符?

我的一位客户在同一天为不同的广告使用了他的网址的不同参数。

这是涉及第一个参数的表达式:

<Read Var="destUrl" Field='DestinationUrl' Regex='(\bp=edgetrackerid_(?{edgetrackerid}\w+)\b)'/> 

这是涉及到第二个参数的表达式:

<Read Var="destUrl" Field='DestinationUrl' Regex='(\bp=edgetrackerid(?{edgetrackerid}\w+)\b)'/> 

但下载报表时,将仅涉及到我先放的那个。 我该如何解决这个问题? 我想说的 - 如果第一个参数是不存在的,然后用第二个(不带下划线_)

感谢

+0

无法看到正则表达式 – 2013-03-04 08:53:13

+0

'\ BP = edgetrackerid _?(?{} edgetrackerid \ w +)\ B)'与可选的下划线? – 2013-03-04 08:53:39

+0

是的,有时它会出现在这样的网址:edgetrackerid_12345,有时它会看起来像这样:edgetrackerid12345 – user1508682 2013-03-04 09:29:33

回答

0

你可以把_?这意味着零个或一个下划线。

所以你的正则表达式将

(\bp=edgetrackerid_?(?{edgetrackerid}\w+)\b) 
+0

它没有工作:(... – user1508682 2013-03-04 09:57:52

+0

@ user1508682你确定正则表达式是否正确?因为我不确定如果'(?...)'是一个有效的捕获组。 – Aditi 2013-03-04 11:07:26

+0

是的,它对我有效,它的参数包括edgeidtrecker_(带下划线) – user1508682 2013-03-04 13:07:54

相关问题