2011-10-03 187 views
1

使用IIS7 URL重写模块,我试图获取特定查询字符串参数的值,如果存在,我需要获取该参数的值。IIS 7 URL重写正则表达式

实例网址:

test.aspx?F5REDIRECTION&SearchType=HeaderSearch&hiddendims=&Keyword=tshirt&nkw=1&vsp=2 

我需要检查,如果“关键字”参数存在,我需要得到的值“T恤”。

如果我试运行这种模式:

^.*F5REDIRECTION&SearchType=Header.*Keyword=(.*)$ 

结果是"tshirt&nkw=1&vsp=2"

如何获得唯一的 “T恤”?

回答

1

尝试这样:

(?<=\?|&)Keyword=(.*?)(?=&|$) 

或者,如果lookarounds不可用:

(?:\?|&)Keyword=(.*?)(?:&|$) 
+0

完美的作品!尽管我没有得到这个部分:(。*?)(?=&| $),首先它表示采用先前exp(。*?)的任何字符0或1,但是(?=&| $)是做什么的?任何解释将不胜感激! –

+1

看看这个网页:http://www.regular-expressions.info/lookaround.html – Shibumi

+0

@MurtazaMandvi - Shibumi的评论是给你的,我想。他是对的,该网站是一般的lookarounds和正则表达式的一个很好的参考。 –