本人對asp正則運算式,不太熟悉~現有一個字串,如下:
testStr="lx_name=%u7B2C%u4E00%u8282%20%u4F1A%u8BA1%u6982%u5FF5%u3001%u804C%u80FD%u548C%u76EE%u6807%28%u7B2C%u4E00%u7AE0%20%u4F1A%u8BA1%u6982%u8FF0%29&subject_id=44&know_id=15222&id=0&num=33&use_time=0&exam_id=44&agency_id=0&status=1&right_num=2&data[0][answer]=13&data[0][correct]=1&data[0][pid]=0&data[0][item_id]=1&data[0][type]=1&data[0][agency_id]=0&data[1][answer]=24&data[1][correct]=0&data[1][pid]=0&data[1][item_id]=2&data[1][type]=1&data[1][agency_id]=0&data[2][answer]=31&data[2][correct]=1&data[2][pid]=0&data[2][item_id]=3&data[2][type]=1&data[2][agency_id]=0"
其中引數lx_name后面為中文,我現想利用正則運算式寫一個函式,得出其中任何一個引數值,包括里面的類似 陣列值 data[0][type]=1 或 data[1][type]=1 或 data[2][type]=2的值~
比如:我要得到如下的引數值,
response.Write "標題:"&GetValue(testStr,"lx_name")&"<br>"
response.Write "試卷ID:"&GetValue(testStr,"exam_id")&"<br>"
response.Write "使用時間:"&GetValue(testStr,"use_time")&"<br>"
response.Write "總題數:"&GetValue(testStr,"num")&"<br>"
response.Write "是否正確:"&GetValue(testStr,"data[2][correct]")&"<br>"
正則運算式,如下:
function GetValue(str,u)
Set re = New RegExp
re.Pattern = ""&u&"=[""]?([\w\-]+)[^>]*" '//僅匹配數字num=33運算式
re.Global = True '搜索匹配字串針對全部文本而不是僅一處
re.IgnoreCase = True '忽略大小寫
re.MultiLine = True
Set matches = re.Execute(str)
if matches.Count>0 then
GetValue=https://bbs.csdn.net/topics/matches(0).SubMatches(0)
end if
End function
但最終輸出的結果,只能匹配如下圖,對于引數“lx_name”,還有類似"data[2][correct]"這樣陣列的值,老是得不到(我有用紅線畫出來,是得不到值的),是什么原因?哪位大俠幫幫忙,寫個正確的正則運算式,分都給你們~

轉載請註明出處,本文鏈接:https://www.uj5u.com/qianduan/266551.html
標籤:ASP
上一篇:新人應該如何學習編程?
