|
蓝森林 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]
最懒正则写法 :) |
|