请教一正则,内容提取 不明白。你要问什么。。不过这200分我看挺PL^o^ 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请把上下文应用环境讲清楚,描明白,根据回贴的经验,这种要HTML中提取数据的正则没有几十个回帖搞不清楚楼主的需求,很是麻烦,所以为你省事我也省事,把具体情况,所有可能列清楚. 我需要从一个树菜的页面,解析其html,获取其中的内容.然后保存到数据库中,实现2个系统的同步.我可以把树菜的html代码列出来,我需要获取每一个项目的havechildren=??isunit=??还有;<a href=''>其他(系统测试组)</a>中的内容 其他(系统测试组)例子:class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>通过正则获取:10其他(系统测试组) 部分html<UL id=ulRoot style='Display:block' ><LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a><UL class=hdn><LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>信息中心</a><LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>测试部门</a><LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>金朝阳测试部门</a><LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2</a><LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test1_bureau</a><LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2_bureau</a><LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门1</a><LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门2</a></UL> 我已经通过js将代码分割arr=str.split("<LI ");然后循环,通过正则来提取需要的内容 忽忽。我温柔的去啦。。交给我们伟大的zhaoxiaoyang(梅雪香@深圳) 前辈啦。。 如果是这样,个人感觉用正则不如用DOM方式处理,因为HTML的情况比较复杂,正则不是很容易写的var lis = ulRoot.getElementsByTagName("LI"); //获得所有的LIlis[i].getAttribute("havechildren"); //lis[i].getAttribute("isunit"); //lis[i].getElementsByTagName("A")[0].nodeValue;以上就是你要的三个值,循环一下就好了 上面的html不是很规范我担心用dom会有问题以上的html代码是一个delphi应用生成的.格式都是确定的.变化不会很大. 想问下zhaoxiaoyang(梅雪香@深圳) 。过些天我想去买本JS的书。能推荐本不? 只要是在浏览器中正确解析了的代码,都可以用DOM处理to muxrwc 买书根据自己的实际情况买,其实我只看过半本书:javascript权威指南5th 方法一:havechildren 比如那个标签是DIV object.getAttribute("havechildren");isunit 同上其他(系统测试组) 同小梅的方法二正则:<script language="JavaScript" type="text/javascript">var str = "class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>";function getArrt(val){ var regstr = eval("/\\s" + val + "=(\\d{1})/i"); var arr = str.match(regstr); if(arr.length) return arr[1];}alert(getArrt("havechildren"));//取字function getInnerText(){ var regstr = /(<a.*>)(.*?)(<\/a>)/i; var arr = str.match(regstr); if(arr.length) return arr[2];}alert(getInnerText());</script>其实用DOM好些. <script type="text/javascript">function lwc(a, b, c) { name.push(b); value.push(c);}function wc(a, b, c) { if (b) a.replace(lp, lwc); else { name.push("超级链接中的内容"); value.push(c); }}var s = "<UL id=ulRoot style='Display:block' >" + "<LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>" + "<UL class=hdn>" + "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>信息中心</a>" + "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>测试部门</a>" + "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>金朝阳测试部门</a>" + "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2</a>" + "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test1_bureau</a>" + "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2_bureau</a>" + "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门1</a>" + "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门2</a>" + "</UL>"var a = ["havechildren", "isunit"], name = [], value = [];var p = /<LI([^>]+)>|<a[^>]+>([\s\S]+?)<\/a>/gi;var lp = new RegExp("(" + a.join("|") + ")=(\\d+)", "gi");s.replace(p, wc);for (var i = 0; i < name.length; i ++) document.write(name[i] + " = " + value[i] + "<br \/>");</script> 感谢楼上各位的回答。现在先采用rotApple(烂苹果) 的方法二实现本人对正则不是很在行,能不能对rotApple(烂苹果) 的正则进行修改,期望是一个正则,把需要的信息一次性抠出来。 考虑到稍微严禁点。才用多次查找。完成那个。。不然完全可以不好这个。。a.replace(lp, lwc); to:muxrwc(王辰) 你写得没怎么明白,不好意思.是不是把数据都装进了一个数组?我来研究下~谢谢你 把所有找到的数据都放进了value数组。。从哪找的放到了name数组。。 如果楼主的代码非常有规律,也可考虑用下面的方法<script type="text/javascript">var s = "<UL id=ulRoot style='Display:block' >"+ "<LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>"+ "<UL class=hdn>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>信息中心</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>测试部门</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>金朝阳测试部门</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test1_bureau</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2_bureau</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门1</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门2</a>"+ "</UL>"re=/havechildren=(\d+?)\s+isunit=(\d+?)[\s\S]+?<a[\s\S]+?>([\s\S]+?)<\/a>/ialert(re.test(s))while(a=re.exec(s)){ document.write("havechildren="+a[1]+"<br>"+"isunit="+a[2]+"<br>"+"超级链接中的内容="+a[3]+"<br>") s=s.replace(re,"");}</script> <script language="JavaScript" type="text/javascript">var str = "class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>";var vKeys = new Array("havechildren", "isunit");function GetAllInfo(){ var resultValue = new Array(3); var regstr = /\shavechildren=(\d{1}) isunit=(\d{1})><.*<a.*>(.*?)<\/a>/i; var arr = str.match(regstr); for (var i=0; i<arr.length; i++) resultValue[i] = arr[i+1]; return resultValue;}</script><input type="text" id="allResult" style="width:800"><input type="button" value="Get" onclick="allResult.value = GetAllInfo().toString()">我就偷懒了,借用一下,这样可以一次取出 //var vKeys = new Array("havechildren", "isunit");哦,这个就不需要了,既然固定的,写进去好了 for (var i=0; i<arr.length; i++)修改为for (var i=0; i<resultValue.length; i++) .*havechildren\040*=\040*(?<havechildren>[\d]+).*isunit\040*=\040*(?<isunit>[\d]+).*>.*<a.*>(?<linktext>.+)</a>根据你给出的实例已经测试通过 正则...俺发现JS DOM强, 正则现在都不怎么用了. DOM很占资源,多了的话效率也很成问题,少的情况是比正则要方便 str = "<LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>";re = /<LI[^>]+havechildren=(\d) isunit=(\d)[^>]*>.+?<a[^>]*>([^<]*)<\/a>/;alert(str.match(re)); 完整测试<body><div id="res"></div><script type="text/javascript">var s = "<UL id=ulRoot style='Display:block' >"+ "<LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>"+ "<UL class=hdn>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>信息中心</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>测试部门</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>金朝阳测试部门</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test1_bureau</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2_bureau</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门1</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门2</a>"+ "</UL>"re = /<LI[^>]+havechildren=(\d) isunit=(\d)[^>]*>.+?<a[^>]*>([^<]*)<\/a>/;while(m = re.exec(s)){ document.getElementById("res").innerHTML += '<p>havechildren:'+m[1]+' isunit:'+m[2]+' 内容:'+m[3]+'</p>'; s = s.substr(m[0].length);}</script></body> <body><div id="res"></div><script type="text/javascript">var s = "<UL id=ulRoot style='Display:block' >"+ "<LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>"+ "<UL class=hdn>"+ "<LI class=kid havechildren=3 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>信息中心</a>"+ "<LI class=kid havechildren=1 isunit=44><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>测试部门</a>"+ "<LI class=kid havechildren=5 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>金朝阳测试部门</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>CSDN</a>"+ "<LI class=kid havechildren=6 isunit=5><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''><b>Net_Lover</b></a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''></a>"+ "<LI class=kid havechildren=9 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门1</a>"+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门2</a>"+ "</UL>"re = /<[^>]+havechildren=(\d) isunit=(\d)[^>]*>.+?<a[^>]*>(.*?)<\/a>/;while(m = re.exec(s)){ document.getElementById("res").innerHTML += '<p>havechildren:'+m[1]+' isunit:'+m[2]+' 内容:'+m[3]+'</p>'; s = s.substr(m[0].length);}</script></body> 问:如何获取被嵌套元素?精确获取某元素下面的元素。 输入框 jsp中如何调用js,情况特殊请看代码 能否在主框架页面中调用子框架页面的js函数? 网页分左右框架 左边的网页点一个连接 右边显示 怎么做啊 我忘记了 外企公司期待你的加入,待遇丰厚,详情请进入! 请问如何从select中删除option初学者 急 一个时间问题。高手请进。 请问怎样用JS实现HTML在线编辑器??? 怎样自动的(不按按钮)submit到前一页,并使前一页刷新 服务器端JavaScript读取服务器端XML的办法是什么? 急求去掉HTML标记的JS函数
我可以把树菜的html代码列出来,我需要获取每一个项目的
havechildren=??
isunit=??
还有;<a href=''>其他(系统测试组)</a>中的内容 其他(系统测试组)例子:
class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>通过正则获取:
1
0
其他(系统测试组)
<LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>
<UL class=hdn>
<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>信息中心</a>
<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>测试部门</a>
<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>金朝阳测试部门</a>
<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2</a>
<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test1_bureau</a>
<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2_bureau</a>
<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门1</a>
<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门2</a>
</UL>
arr=str.split("<LI ");
然后循环,通过正则来提取需要的内容
var lis = ulRoot.getElementsByTagName("LI"); //获得所有的LI
lis[i].getAttribute("havechildren"); //
lis[i].getAttribute("isunit"); //
lis[i].getElementsByTagName("A")[0].nodeValue;
以上就是你要的三个值,循环一下就好了
我担心用dom会有问题以上的html代码是一个delphi应用生成的.
格式都是确定的.变化不会很大.
havechildren 比如那个标签是DIV object.getAttribute("havechildren");
isunit 同上
其他(系统测试组) 同小梅的方法二
正则:
<script language="JavaScript" type="text/javascript">
var str = "class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>";function getArrt(val)
{
var regstr = eval("/\\s" + val + "=(\\d{1})/i");
var arr = str.match(regstr);
if(arr.length)
return arr[1];
}
alert(getArrt("havechildren"));//取字
function getInnerText()
{
var regstr = /(<a.*>)(.*?)(<\/a>)/i;
var arr = str.match(regstr);
if(arr.length)
return arr[2];
}
alert(getInnerText());
</script>其实用DOM好些.
function lwc(a, b, c) {
name.push(b);
value.push(c);
}
function wc(a, b, c) {
if (b)
a.replace(lp, lwc);
else {
name.push("超级链接中的内容");
value.push(c);
}
}
var s = "<UL id=ulRoot style='Display:block' >"
+ "<LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>"
+ "<UL class=hdn>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>信息中心</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>测试部门</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>金朝阳测试部门</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test1_bureau</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2_bureau</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门1</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门2</a>"
+ "</UL>"
var a = ["havechildren", "isunit"], name = [], value = [];
var p = /<LI([^>]+)>|<a[^>]+>([\s\S]+?)<\/a>/gi;
var lp = new RegExp("(" + a.join("|") + ")=(\\d+)", "gi");
s.replace(p, wc);
for (var i = 0; i < name.length; i ++)
document.write(name[i] + " = " + value[i] + "<br \/>");
</script>
期望是一个正则,把需要的信息一次性抠出来。
不然完全可以不好这个。。a.replace(lp, lwc);
你写得没怎么明白,不好意思.是不是把数据都装进了一个数组?
我来研究下~谢谢你
从哪找的放到了name数组。。
<script type="text/javascript">
var s = "<UL id=ulRoot style='Display:block' >"
+ "<LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>"
+ "<UL class=hdn>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>信息中心</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>测试部门</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>金朝阳测试部门</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test1_bureau</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2_bureau</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门1</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门2</a>"
+ "</UL>"
re=/havechildren=(\d+?)\s+isunit=(\d+?)[\s\S]+?<a[\s\S]+?>([\s\S]+?)<\/a>/i
alert(re.test(s))
while(a=re.exec(s))
{
document.write("havechildren="+a[1]+"<br>"+"isunit="+a[2]+"<br>"+"超级链接中的内容="+a[3]+"<br>")
s=s.replace(re,"");
}
</script>
var str = "class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>";var vKeys = new Array("havechildren", "isunit");
function GetAllInfo()
{
var resultValue = new Array(3);
var regstr = /\shavechildren=(\d{1}) isunit=(\d{1})><.*<a.*>(.*?)<\/a>/i;
var arr = str.match(regstr);
for (var i=0; i<arr.length; i++)
resultValue[i] = arr[i+1];
return resultValue;
}
</script>
<input type="text" id="allResult" style="width:800">
<input type="button" value="Get" onclick="allResult.value = GetAllInfo().toString()">我就偷懒了,借用一下,这样可以一次取出
哦,这个就不需要了,既然固定的,写进去好了
修改为for (var i=0; i<resultValue.length; i++)
re = /<LI[^>]+havechildren=(\d) isunit=(\d)[^>]*>.+?<a[^>]*>([^<]*)<\/a>/;
alert(str.match(re));
<body>
<div id="res"></div>
<script type="text/javascript">
var s = "<UL id=ulRoot style='Display:block' >"
+ "<LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>"
+ "<UL class=hdn>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>信息中心</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>测试部门</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>金朝阳测试部门</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test1_bureau</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>test2_bureau</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门1</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门2</a>"
+ "</UL>"
re = /<LI[^>]+havechildren=(\d) isunit=(\d)[^>]*>.+?<a[^>]*>([^<]*)<\/a>/;
while(m = re.exec(s))
{
document.getElementById("res").innerHTML += '<p>havechildren:'+m[1]+' isunit:'+m[2]+' 内容:'+m[3]+'</p>';
s = s.substr(m[0].length);
}
</script>
</body>
<div id="res"></div>
<script type="text/javascript">
var s = "<UL id=ulRoot style='Display:block' >"
+ "<LI class=kid havechildren=1 isunit=0><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>其他(系统测试组)</a>"
+ "<UL class=hdn>"
+ "<LI class=kid havechildren=3 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>信息中心</a>"
+ "<LI class=kid havechildren=1 isunit=44><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>测试部门</a>"
+ "<LI class=kid havechildren=5 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>金朝阳测试部门</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>CSDN</a>"
+ "<LI class=kid havechildren=6 isunit=5><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''><b>Net_Lover</b></a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''></a>"
+ "<LI class=kid havechildren=9 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门1</a>"
+ "<LI class=kid havechildren=1 isunit=1><img class=clsNoHand src=/images/left.gif width=10 height=10> <a href=''>部门2</a>"
+ "</UL>"
re = /<[^>]+havechildren=(\d) isunit=(\d)[^>]*>.+?<a[^>]*>(.*?)<\/a>/;
while(m = re.exec(s))
{
document.getElementById("res").innerHTML += '<p>havechildren:'+m[1]+' isunit:'+m[2]+' 内容:'+m[3]+'</p>';
s = s.substr(m[0].length);
}
</script>
</body>