首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

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

2013-04-09 
来个大神帮忙解决下正则表达式应用我想弄个模版标签,可是一直弄不出来。。研究了好几天就知道用For Each Mat

来个大神帮忙解决下正则表达式应用
我想弄个模版标签,可是一直弄不出来。。研究了好几天就知道用For Each Match In Matches可以解决,可就是研究不出来。。原来做UBB代码如下



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
%>

热点排行