日期:2009-11-25  浏览次数:20849 次


<script language="javascript">

var xx="如果我们相信(quote) 引用张三的话 (/quote) 所说的,那么,我们也要相信 (quote) 李四的话 (/quote)的话吗?";

//建立正则表达式的匹配模式、匹配。()的作用就是用来获取匹配,以备后用。
//第 1 对()匹配 (quote) ,由于(、)是特殊字符,要匹配它们需要用\转义。
//第 2 对()匹配 (quote)(/quote) 中间的内容。. 表示所有字符,[^\(] 用来踢除 (,否则如果有多个匹配,只能获取一个。
//第 3 对()匹配 (/quote)
//g 就是用来搜索用的匹配。否则只能得到第1个匹配。
var p=/(\(quote\))(.[^\(]*)(\(\/quote\))/g;
i=1;
while(a=p.exec(xx)){
document.write("第"+i+"个所有的匹配:"+a[0]+"。<BR>"); //数组的第1项存放的是所有()里的匹配,本例是3对()匹配的结果
document.write("&nbsp;&nbsp;&nbsp;第1个子匹配:"+a[1]+"<BR>");//获取第 1 对 () 里的匹配。
document.write("&nbsp;&nbsp;&nbsp;第2个子匹配:"+a[2]+"<BR>");//同上。
document.write("&nbsp;&nbsp;&nbsp;第3个子匹配:"+a[3]+"<BR><BR><BR>");//如果还有第4、5对(),就可以用a[4]、a[5]
i++;
}
</script>

这是VBS中的例子,就不再介绍乐。
<script language="vbscript">
dim xx
xx="如果我们相信(quote) 引用张三的话 (/quote) 所说的,那么,我们也要相信 (quote) 李四的话 (/quote)的话吗?"
set p=new regexp '建立正则表达式
p.pattern="(\(quote\))(.[^\(]*)(\(\/quote\))" '建立匹配的模式
p.global=true '全局搜索

set a = p.execute(xx)
i=1
for each val in a
document.write("第"+cstr(i)+"个所有的匹配:"+val+"<BR>")
document.write("&nbsp;&nbsp;&nbsp;第1个子匹配:"+val.SubMatches(0)+"<BR>")
document.write("&nbsp;&nbsp;&nbsp;第2个子匹配:"+val.SubMatches(1)+"<BR>")
document.write("&nbsp;&nbsp;&nbsp;第3个子匹配:"+val.SubMatches(2)+"<BR><BR><BR>")
i=i+1
next
</script>