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=andを追加できます!source="get-property('To')"/>

于 2012-08-10T05:33:04.593 に答える