解析url引數正則:(?<=\?|&)[\w\={}\\\\,-:'\s'""]*(?=[^#\s]|)
意思是(?<=\?|&) 從?或&符號開始匹配之後的滿足 [\w\={}\\\\,-:'\s'""]*的字串 但是不包含& 1個到多個 (?=[^#\s]|)匹配空格|#號之前或者空格之前結束
正好專案中要用到 搗鼓了好久還是不會.最終放棄使用split分割的方式解析發現好落伍
publicstatic namevaluecollection querystring(string
path)
var arr=path.split(new
char , stringsplitoptions.removeemptyentries);
if (arr.length != 2
)
var values = arr[1
]; arr = values.split(new
char , stringsplitoptions.removeemptyentries);
if (arr == null) return
null
;
string
itemvalues;
namevaluecollection nvcs = new
namevaluecollection();
foreach (var item in
arr)
, stringsplitoptions.removeemptyentries);
if (itemvalues == null || itemvalues.length == 0) continue
; nvcs.add(itemvalues[
0], itemvalues.length <= 1 ? string.empty : itemvalues[1
]); }
return
nvcs;
}
然後去看正則的文件 修改後版本
其實微軟有封裝好的方法 system.web.httputility.parsequerystring 傳入?號後面一部分就好了 有種有現成的不用 造輪子的感覺。 但是無所謂啦 當練習正則 還有自己的**也好把控一點
推薦一篇不錯的講正則的文章
正規表示式解析
正規表示式,又稱正規表示式,常規表示式,是使用單個字串來描述.匹配一系列符合某個句法規則的字串,在很多文字編輯器中,正規表示式通常被用來檢索.替換那些符合某個模式的文字.正規表示式的語法可以自行搜尋,通常分為一下幾個方面 1 字元 可以使用普通字元匹配,例 a 使用預定義字元表示給定範圍中的某個字元...
正規表示式解析
string finalsql table23 select from table where id 10 matcher m pattern.compile a za z w a za z matcher finalsql if m.find 正規表示式實現的功能是實現分組,將finalsql的左...
正規表示式解析
string finalsql table23 select from table where id 10 matcher m pattern.compile a za z w a za z matcher finalsql if m.find 正規表示式實現的功能是實現分組,將finalsql的左...