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

asp 正则表达式的中分组的问题
比如 str="<div>123</div><li>456</li><li>789</li>";
正则表达式应该怎么写才能得到123456789这个字符串,我所知道的在JAVA中可以用分组:
<div>[\d]+</div><li>([\d]+)</li>><li>([\d]+)</li>

这样的话group(0)=123 group(1)=456 group(2)=789

那么在asp里应该如何写呢?

------解决方案--------------------
一样的。
------解决方案--------------------
看看这个高效率的函数 FunRemoveHTML(refString)

VBScript code

dim str,rx
str="<a href='http://www.code-design.cn' target='_blank'>去除HTML标签的功能函数ABCDEFGHIJK</a><div>123</div><li>456</li><li>789</li>"

Function FunRemoveHTML(refString)
    dim regEx,temp
    set regEx=new RegExp
    regEx.IgnoreCase=true
    regEx.Global = true
    regEx.pattern="<[^>]+>|</[^>]+"
    temp=regEx.replace(refString,"")
    set regEx=nothing    
    funRemoveHTML=temp
    temp=null
End function

response.Write "<br>str = " & server.HTMLEncode(str)
response.Write "<br>str2 = " & FunRemoveHTML(str)

------解决方案--------------------
VBScript code

<%
str= "<div>123</div><li>456</li><li>789</li>"
Set re = New RegExp
With re
    .Global = True
    .IgnoreCase = True
    .Pattern = "<([^>]+)>(\d+)<\/\1>"
    Set col = .Execute(str)
    For Each m In col
        Response.Write m.SubMatches(1) & "<br>"
    Next
End With
Set re = Nothing
%>