XML中的QueryString需要正则表达式帮助

时间:2012-08-10 05:01:24

标签: xml regex

我正在努力在XML中实现正则表达式模式,我面临的问题是在检查XML中的&符号时。有没有更简洁的方法,参数可以是不同的顺序。

request_id=123&application_id=876734&cat_id=1234&rept_id=12123&req_type=Schedule&lookid=GH123366HJ123&access_key=ABCD12345&requested_date=2012-02-05 04:50:17&run_date=2012-02-05 04:50:17&schedule_id=1123

相应的正则表达式是

<filter regex="request_id=([^&amp;]+)&amp;application_id=([^&amp;]+)&amp;cat_id=    ([^&amp;]+)&amp;rept_id=([^&amp;]+)&amp;req_type=([^&amp;]+)&amp;lookid=([^&amp;]+)&amp;access_key=([^&amp;]+)&amp;requested_date=([^&amp;]+)&amp;run_date=([^&amp;]+)&amp;schedule_id=([^&amp;]+)" source="get-property('To')"/>

我的应用程序(我无法控制更改其工作方式)将从XML读取正则表达式模式并验证查询字符串。

注意:现在它没有按预期工作。

我发现的替代解决方案是

([^?=&amp;]+)(=([^&amp;].*))

然而,它并没有解决我的目的。

1 个答案:

答案 0 :(得分:0)

考虑到你想要替换=和&amp;之间的内容,这里是c#

中的代码
string s="request_id=123&application_id=87....................";
Regex r=new Regex(@"(?<=\=).*?(?=(\&)|\z)");
r.Replace(s,"([^&amp;]+)&amp;");

然后,您可以将<filter regex=source="get-property('To')"/>添加到新替换的字符串中!