以下代码是我调试过程中的代码,有以下问题:
1、matches(0).SubMatches(0)是匹配模式中有()的时候来获取结果。
2、如果匹配模式中无()则直接用Match.value获取匹配结果
3、将以下代码copy到test.asp的文件中时,在调试的时候浏览器有些时候看不到结果,是因为输出的结果中包涵了代码。采用源代码的模式是可以看到匹配的代码及文字。Match.value输出的结果是包涵了代码的。matches(0).SubMatches(0)输出的结果是可能剔除了代码的结果。
4、未解决的问题:html中的空格及换行,如stingtxt2的样式,没有找到剔除空格或换行的解决办法。欢迎交流:QQ:309800818
<%
Function RegExpTest(patrn, strng)
Dim regEx, Match, Matches ' 建立变量。
Set regEx = New RegExp ' 建立正则表达式。
regEx.Pattern = patrn ' 设置模式。
regEx.IgnoreCase = True ' 设置是否区分大小写。
regEx.Global = True ' 设置全程可用性。
Set Matches = regEx.Execute(strng) ' 执行搜索。
For Each Match in Matches ' 遍历 Matches 集合。
RetStr = matches(0).SubMatches(0)
'RetStr = RetStr & Match.value &"<br/>"
'RetStr = RetStr & Matches(1) &"<br/>"
Next
RegExpTest = RetStr
End Function
stingtxt = "<title>fasfasdfasdfadsfasdfdfasd</title>"
stingtxt2 = "<title>
惜命最好的方式,竟不是养生,而是…惊醒无数人!
</title>"
'response.Write RegExpTest("<img.*?>","asdfasdfadsf<img src='ad.jpg'>asdfasdfasdfsdf<img src='bbbd.jpg'>")
response.Write(RegExpTest("<title>(.*?)<\/title>", stingtxt2))
'response.Write(RegExpTest("(<title>)", "<title>fasdfasd</title>"))
'response.write RegExpTest("[ij]s.", "IS1 Js2 IS3 is4")
%>