如何使用正则表达式语句提取异常字符?

时间:2013-05-05 15:30:35

标签: regex

我有一个这样的字符串:

lp.xyz.com/trader/?campaign=32&p=edgetrac_100{creative}

如何使用正则表达式仅提取100{creative}

通常我使用的文字如下:

lp.xyz.com/trader/?campaign=32&p=edgetrac_100

表达式:

\bp=edgetrac_(?<edgetrac>+)\b

只提取100和(edgetrac)以便稍后使用它:

<Read Var="destUrl1" Field='Destination URL' Regex='(\bp=edgetrac_(?{edgetrac}\w+)\b)'     />

<Map To='Value'  Condition='destUrl1 != null' Value="{destUrl1.edgetrac}" /> 

但现在我需要一些东西来获得{creative},所以我得到100{creative} (edgetrac)

有什么建议吗?

感谢。

2 个答案:

答案 0 :(得分:1)

如果 {creative}

之后没有任何内容,这可能会有所帮助
\bp=edgetrac_.*

或者当它有大括号后的东西时,

\bp=edgetrac_(\d+){(\w+)}

或简单地说,

(\d+){(\w+)}

然后,为了匹配edgetrac,

p=([a-zA-Z]+)_(\d+){(\w+)}

此处输入lp.xyz.com/trader/?campaign=32&p=edgetrac_100{creative}

\ 1 =&gt; edgetrac

\ 2 =&gt; 100

\ 3 =&gt;广告

答案 1 :(得分:0)

好的我认为:\ bp = edgetrac _(\ w + {* [a-z] }