蓝森林首页 | 返回主页 | 本站地图 | 站内搜索 | 联系信箱 |
 您目前的位置:首页 > 自由软件 > 技术交流 > 应用编程


    

蓝森林 http://www.lslnet.com 2006年8月25日 8:28

[正则]匹配属性与值有什么比较好的方案?

要处理远程获取的数据,远程页面是div+css结构,由于页面中的div很多,想取出某个div段的数据,正则的思路应当是怎么样的?

比如:(摘抄一段源代码):
[code]
<div id="top">
.......
</div>
<div class="main">
<div class="subject">标题</div>
<div class="body">内容</div>
<div class="resume">摘要</div>
</div>
<div class="main">
<div class="copyRight">....</div>
</div>
<div class="main">
<div class="record">....</div>
</div>
[/code]
我想获取第一个<div class="main">段的数据,即
[code]
<div class="subject">标题</div>
<div class="body">内容</div>
<div class="resume">摘要</div>
[/code]
这些内容,我的想法是匹配第一个<div class="main">与第二个<div class="main">之间的数据,但是我无法匹配到这个带有属性的div。
当然我写的太简单了,主要是没有思路,大家能帮我纠正一下?
以下是我写的正则,也就是不管?=main对不对都输出来了-_!!:
[html]
<script>
function bodyFilter(str){
        var endStr = str.replace(/\<\s+(div)\s+(\w+\=(?=main))\>/ig,"");
        alert(endStr);
}
str = "<div class='main'>";
str2 = "<div class='ok'>";
bodyFilter(str);
bodyFilter(str2);
</script>
[/html]

这个有点难度,我也不知道怎么找对应<div calss="main">的匹配的</div>关注中......

[html]
<script type="text/javascript">
window.onload=function xlh(){
var tal = document.getElementsByTagName("div");
for (var j=0;j<tal.length;j++){
if(tal[j].className=="main"){
alert(tal[j].innerHTML)
}}
}
</script>
<div id="top">
</div>

<div class="main">
<div class="subject">标题</div>
<div class="body">内容</div>
<div class="resume">摘要</div>
</div>

<div class="main">
<div class="copyRight">....</div>
</div>

<div class="main">
<div class="record">....</div>
</div>
[/html]

呵呵,似乎不用正则更加方便容易呢!

不知道会不会被青蛙骂?

[code]
/<div class=\"main\">([\s\S]+?)<\/div>/
[/code]

最懒正则写法 :)




Copyright © 1999-2000 LSLNET.COM. All rights reserved. 蓝森林网站 版权所有。 E-mail : webmaster@lslnet.com