0

我正在努力在 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;].*))

但是它并没有解决我的目的。

4

1 回答 1

0

考虑到要替换 = 和 & 之间的内容,这里是 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')"/>到新的替换字符串!

于 2012-08-10T05:33:04.593 回答