我必須做一個站點重定向通過腳本約10個不同的URL都包含字符串「企業」。我正在嘗試編寫一些RegEx來查明URL是否包含此內容。爲此,我正在使用我在另一個問題上找到的函數(using classic asp for regular expression)。問題是,當我在「http://enterpriseloyaltyjournal.ca/」網站上測試它時,沒有任何東西正在返回。正則表達式在經典的ASP,以找出該URL是否有一個特定的字符串
我已經在測試中都http://gskinner.com/RegExr/和http://www.pagecolumn.com/tool/regtest.htm正則表達式與正則表達式的匹配結果 「enterpriseloyalty [A-ZA-Z] *(?= {1,1})」 工作,匹配 「enterpriseloyaltyjournal」網址字符串。但在網站上,「Response.Write(」結果:「& result.Submatches(0))」根本沒有任何回報。說實話,我不知道我是否期待匹配字符串的結果或什麼,但是根本沒有任何返回。
當我只是做一個If InStr(Request.ServerVariables("SERVER_NAME"),"enterpriseloyaltyjournal.ca") > 0 Then
聲明,它回來了。我的代碼如下。任何幫助是極大的讚賞。
Function RegExResults(strTarget, strPattern)
Set regEx = New RegExp
regEx.Pattern = strPattern
regEx.Global = true
Set RegExResults = regEx.Execute(strTarget)
Set regEx = Nothing
End Function
'Pass the original string and pattern into the function and get a collection object back'
Set arrResults = RegExResults(Request.ServerVariables("SERVER_NAME"), "enterpriseloyalty[A-Za-z]*(?=\.{1,1})")
'In your pattern the answer is the first group, so all you need is'
For each result in arrResults
Response.Write("Results: " & result.Submatches(0))
Next
編輯
我也想有沒有結果如下:
Regex.IgnoreCase = True
Regex.Pattern = "enterpriseloyalty[A-Za-z]*(?=\.{1,1})"
Response.Write("Results:" & Regex.Test(Request.ServerVariables("SERVER_NAME")))
而且,當我說 「沒有結果」,我的意思是什麼都沒有返回。甚至沒有「結果:」部分。雖然我沒有得到任何類型的錯誤。
解決
改變了上面的代碼看起來像:
Dim regex
Set regex = New RegExp
regex.IgnoreCase = True
regex.Pattern = "enterpriseloyalty[A-Za-z]*(?=\.{1,1})"
Response.Write("Results:" & regex.Test(Request.ServerVariables("SERVER_NAME")))
和它的工作就好了。