对于下面的文本:
<% Execute request("a") %>
rs.execute "sss"下面的C#正则可以匹配第一行,但不允许匹配第二行:
(?mi)\b(?<!\.)execute\b目前需要在ASP中应用这样的正则,但ASP中好像不支持[color=#FF6600](?<!表达式)的表达方法有无对应的ASP下的表达方法呢?[/color]
<% Execute request("a") %>
rs.execute "sss"下面的C#正则可以匹配第一行,但不允许匹配第二行:
(?mi)\b(?<!\.)execute\b目前需要在ASP中应用这样的正则,但ASP中好像不支持[color=#FF6600](?<!表达式)的表达方法有无对应的ASP下的表达方法呢?[/color]
谢谢,但是它缺匹配了:rs . execute "www"这也是不允许的!
谢谢,现在想在ASP中运用,ASP好像不支持(?<!表达式)这样的语法。
会破坏整个程序的结构,不到万不得已不愿采用。已找到解决的问题的正则啦:
Function RegExpTest( strng,patrn)
Dim regEx, Match, Matches ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = true ' 设置是否区分字符大小写。
regEx.Global = False ' 设置全局可用性。
RegExpTest=regEx.Test(strng) ' 检测是否有匹配
End Functiontxt="待检测的asp文件的内容"
if RegExpTest(txt,"[^\s\.][ \t]*\bexecute\b") then
' 违反规则,删除文件
end if示例文件内容1
----------------
<% execute request("a") '不允许执行 %>
示例文件内容2
----------------
<%
execute request("a") '不允许执行
%>示例文件内容3
----------------
<%
rs.execute "update ..." ' 允许正常执行
%>
示例文件内容4
----------------
<%
rs. execute "update ..." ' 允许正常执行
%>示例文件内容5
----------------
<%
a=a+1 ' rs.
execute request("a") ' 不允许执行
%>