2012-08-10 36 views
0

我正在使用XML實現正則表達式模式,我面臨的問題是檢查XML中的和符號。有沒有更乾淨的方式來做到這一點,參數可以是不同的順序。XML中QueryString所需的正則表達式幫助

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

哪個正則表達式引擎?哪種語言? – Kev 2012-08-11 00:59:58

回答

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')"/>新的替換字符串!