ASP正则获取图片地址

2009年4月30日星期四

ASP正则获取图片地址

%
FunctionRegExp_Execute(string)
DimregEx,Match,Matches,values'建立变量。
SetregEx=NewRegExp'建立正则表达式。
regEx.Pattern=src\=.+?\.(gif|jpg)'设置模式。
regEx.IgnoreCase=true'设置是否区分字符大小写。
regEx.Global=True'设置全局可用性。
SetMatches=regEx.Execute(string)'执行搜索。
ForEachMatchinMatches'遍历匹配集合。
values=valuesMatch.Value|
Next
RegExp_Execute=values
EndFunction
%
--------------------------------------------------------------------------------------------------%
dimresult,result1
str=adfjlmnnzlkjlkfjojimgsrc=/article/UploadPic/2009-4/200941873654640.jpgborder=0width=100dfkjhdjfk
setre=newregexp
re.ignorecase=true
re.global=true
re.pattern=img[^]*src=([^]+)[^]+
setm=re.execute(str)
foreachninm
result=resultn
result1=result1n.submatches(0)
next
setm=nothing
setre=nothing
ifresultthen
result=left(result,len(result)-1)
result1=left(result1,len(result1)-1)
endif
result=split(result,)'存储img
result1=split(result1,)'存储图像地址
%
--------------------------------------------------------------------------------------------------
%
'功能:获取全部图片地址,保存到一个数组.
'需要ReplaceAll函数:http://jorkin.reallydo.com/article.asp?id=406
FunctiongetIMG(sString)
DimsReallyDo,regEx,iReallyDo
DimoMatches,cMatch
'//定义一个空数组
iReallyDo=-1
ReDimaReallyDo(iReallyDo)
IfIsNull(sString)Then
getIMG=
ExitFunction
EndIf
'//格式化HTML代码
'//将每个img换行方便正则替换
sReallyDo=sString
OnErrorResumeNext
sReallyDo=Replace(sReallyDo,vbCr,)
sReallyDo=Replace(sReallyDo,vbLf,)
sReallyDo=Replace(sReallyDo,vbTab,)
sReallyDo=Replace(sReallyDo,img,vbCrLfimg,1,-1,1)
sReallyDo=Replace(sReallyDo,/,/,1,-1,1)
sReallyDo=ReplaceAll(sReallyDo,=,=,True)
sReallyDo=ReplaceAll(sReallyDo,,,True)
sReallyDo=Replace(sReallyDo,,vbCrLf)
sReallyDo=Trim(sReallyDo)
OnErrorGoTo0
SetregEx=NewRegExp
regEx.IgnoreCase=True
regEx.Global=True
'//去除onclick,onload等脚本
regEx.Pattern=\s[on].+?=([\|\'])(.*?)\1
sReallyDo=regEx.Replace(sReallyDo,)
'//将SRC不带引号的图片地址加上引号
regEx.Pattern=img.*?\ssrc=([^\\'\s][^\\'\s]*).*?
sReallyDo=regEx.Replace(sReallyDo,imgsrc=$1/)
'//正则匹配图片SRC地址
regEx.Pattern=img.*?\ssrc=([\\'])([^\\']+?)\1.*?
SetoMatches=regEx.Execute(sReallyDo)
'//将图片地址存入数组
ForEachcMatchinoMatches
iReallyDo=iReallyDo+1
ReDimPreserveaReallyDo(iReallyDo)
aReallyDo(iReallyDo)=regEx.Replace(cMatch.Value,$2)
Next
getIMG=aReallyDo
EndFunction
%

0 评论:

发表评论