我必须通过脚本为大约10个不同的URL进行站点重定向,所有URL都包含字符串“entrepreneeloyalty”。我正在尝试编写一些RegEx,以确定URL中是否包含此内容。为此,我正在使用我在另一个问题上找到的函数(using classic asp for regular expression)。问题是当我在网站“http://enterpriseloyaltyjournal.ca/”上测试时没有任何回报。
我在http://gskinner.com/RegExr/和http://www.pagecolumn.com/tool/regtest.htm中测试了正则表达式,其正则表达式为“企业忠诚[A-Za-z] *(?=。{1,1})”的匹配结果,在URL字符串中匹配“entrepreneeloyaltyjournal”。但在网站上,“Response.Write(”Results:“& 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")))
它运作得很好。
答案 0 :(得分:4)
找到另一种方法,并最终使用:
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")))