经典 ASP 中的正则表达式,以确定 URL 是不是具有特定字符串
Posted
技术标签:
【中文标题】经典 ASP 中的正则表达式,以确定 URL 是不是具有特定字符串【英文标题】:RegEx in Classic ASP to find out if the URL has a particular string经典 ASP 中的正则表达式,以确定 URL 是否具有特定字符串 【发布时间】:2012-02-29 08:28:54 【问题描述】:我必须通过脚本对大约 10 个不同的 URL 进行站点重定向,这些 URL 都包含字符串“enterpriseloyalty”。我正在尝试编写一些正则表达式来确定 URL 中是否包含此内容。为此,我使用了我在此处的另一个问题 (using classic asp for regular expression) 中找到的函数。问题是当我在“http://enterpriseloyaltyjournal.ca/”网站上测试它时,什么都没有返回。
我已经在http://gskinner.com/RegExr/ 和http://www.pagecolumn.com/tool/regtest.htm 中测试了正则表达式,正则表达式“enterpriseloyalty[A-Za-z]*(?=.1,1)”的匹配结果有效,匹配“enterpriseloyaltyjournal " 在 URL 字符串中。但在网站上,“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")))
而且效果很好。
【问题讨论】:
【参考方案1】:找到另一种方法,并最终使用:
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")))
【讨论】:
以上是关于经典 ASP 中的正则表达式,以确定 URL 是不是具有特定字符串的主要内容,如果未能解决你的问题,请参考以下文章
如何测试以确定浏览器是不是支持 JS 正则表达式lookahead/lookbehind?
使用正则表达式查看单元格是不是包含 Google 表格中的表情符号