MyException - 我的异常网
当前位置:我的异常网» ASP » 来个大神帮忙解决停正则表达式应用

来个大神帮忙解决停正则表达式应用(2)

www.myexceptions.net  网友分享于:2013-04-10  浏览:3次


function ubbcode(str)
if IsNull(str) then exit function
str=trim(str)
Set re=new RegExp
re.IgnoreCase =true
re.Global=True
re.pattern="\[view_(\d+)_(\d+)_(\d+)_(\d+)_(\d+)\]"
set mc=re.execute(str)
for each m in mc
  m1=m.submatches(0)
  m2=m.submatches(1)
  m3=m.submatches(2)
  m4=m.submatches(3)
  m5=m.submatches(4)
  str = Replace(str,"[view_"&m1&"_"&m2&"_"&m3&"_"&m4&"_"&m5&"]",GetSubStr(m1,m2,m3,m4,m5))
next

set rs=nothing
ubbcode=str
end function

function GetSubStr(m1,m2,m3,m4,m5)'测试用的。。
 GetSubStr=m1&"-"&m2&"-"&m3&"-"&m4&"-"&m5
end function

response.write ubbcode(s)
------解决方案--------------------
<%
function GetSubStr(m1,m2,m3,m4,m5)
 GetSubStr="view函数的参数:"&m1&"-"&m2&"-"&m3&"-"&m4&"-"&m5
end function
Dim html,n,i,ii,re,arr
html="[view_1_2_3_4_5]afefal[view_5_4_3_2]"
Set re=new RegExp
re.IgnoreCase=True
re.Global=True
re.Pattern = "\[view((_\d+)+)\]"
Set ii = re.Execute(html)
For Each i In ii
arr=Split(i.SubMatches(0),"_")
If UBound(arr)=5 Then html=Replace(html,i.Value,GetSubStr(arr(0),arr(1),arr(2),arr(3),arr(4)))
Next
set re=Nothing
Response.write html
%>

文章评论

软件开发程序错误异常ExceptionCopyright © 2009-2015 MyException 版权所有