我要尋找一個Perl兼容的正則表達式,將解析形式的字符串:正則表達式解析請求參數
參數1 =值& ...... &參數2 =值2 & ......
和提取只有param1和param2的值。但
- 參數2可能先於參數1
- 可能沒有參數1或參數2
- 參數1或參數2(或兩者)可能具有空值,即參數1 = & ...
我要尋找一個Perl兼容的正則表達式,將解析形式的字符串:正則表達式解析請求參數
參數1 =值& ...... &參數2 =值2 & ......
和提取只有param1和param2的值。但
/(.*?)=(.*?)&/
循環和捕獲$1
和$2
應該工作
單個。匹配任何一個字符,如果參數和值都是單個字符,這將工作。 – Copas 2009-05-31 21:23:20
是啊,不知何故*失去了當然我的意思是(。*?)懶惰評估的問號 – ennuikiller 2009-05-31 22:52:20
我不會打擾編寫自己的請求解析器。只需使用CGI.pm
。
/[?&]([^=]+)=([^=&]+)/g
這將匹配由an =分隔的任何非= =字符,並將它們放入$ 1和$ 2中。
或...
my %argsHash = split(/=|&/, $args);
這會給你帶參數和值出現運作良好的哈希,但CGI.pm是都圍繞着一個更好的主意。
如果這是針對C++的,請考慮使用現有的CGI庫來爲您解析查詢參數,而不是自己重新發明這類事情。
這種庫之一是cgic
,針對c CGI庫:http://www.boutell.com/cgic/#functions
改變了你的變量從Perl來PCRE,作爲pcres唯一真正關係Perl是名字。除此之外,關於它們幾乎沒有任何關於perl的信息。詢問perl的答案會給你一個perl的答案,而且它不會/與PCRE一起工作。 – 2009-05-31 22:46:47
http://stackoverflow.com/questions/755168/perl-myths/933070#933070 將此神話添加到神話factoid列表中。 – 2009-05-31 23:05:29