日期:2014-05-17  浏览次数:21054 次

请教正则表达式一条,谢谢
感觉应该比较简单,可惜自己对正则实在没有研究,求大家帮忙解答,谢谢。

数据库某一字段中存在以下任意内容:

test1,test2fasdfasfafsa<%response.write "aaa"%>dfafadfafafafa<%for i=0 to 1:response.write ddd:next%>fdsfdfdsfsd
dddddd22222aaaaaa<%aaa=888%>换行……


求教正则该怎么写?可以将上述任意内容中的“<%”和“%>”之间的内容循环输出?(输出内容不含<%和%>)

谢谢大家。

------解决方案--------------------
VBScript code
dim str: str = "你的字符串"
dim value
set regex = new RegExp
regex.pattern = "[^%]+(?=%>)"
regex.global = true
set Matchs = regex.execute( str )
for each match in Matchs 
  value = value + match.value + "<br/>"
next
response.write(value)

------解决方案--------------------
C# code

(?<=\<%).*?(?=%\>)
但貌似VB不支持这种断言 js的话楼上的可以

------解决方案--------------------
VBScript code
s="test1,test2fasdfasfafsa<%response.write ""aaa""%"&">dfafadfafafafa<%for i=0 to 1:response.write ddd:next%"&">fdsfdfdsfsd"&_
  "dddddd22222aaaaaa<%aaa=888%"&">换行……"

set rx=new RegExp
rx.Global=true
rx.Pattern="<%([\s\S]+?)%"&">"
set mc=rx.Execute(s)
for each m in mc
  response.Write "<pre>"&m.submatches(0)&"</pre>"
next
set rx=nothing