如何用正则表达式提取网页内容?

lizhizhe2000 2006-12-27 08:27:15
要求如下:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=gb2312">
<title>无标题文档</title>
</head>

<body>
<form name="form1" method="post" action="">
<p>姓名:lizhizhe2000(彬彬 )
</p>
<p>地址格式等),它具有用来检查给出的字符串是否符合规则的属性和方法。 <br>
除此之外,你用RegExp构造器建立的个别正则表达式对象的属性,就已经预先定义好了正则表达式 </p>
<p><img src="protfield.gif" width="16" height="16">
<img src="protmethod.gif" width="16" height="16"></p>
</form>
</body>
</html>

如何用正则表达式实现除了图片标记<img....>以外,将其他标记中的内容正确提取出, <img..>保持原样,即上面的文本处理后得到如下结果:
姓名:lizhizhe2000(彬彬 )

地址格式等),它具有用来检查给出的字符串是否符合规则的属性和方法。
除此之外,你用RegExp构造器建立的个别正则表达式对象的属性,就已经预先定义好了正则表达式
<img src="protfield.gif" width="16" height="16">
<img src="protmethod.gif" width="16" height="16">


...全文
585 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
cloudgamer 2006-12-28
  • 打赏
  • 举报
回复
帮顶
Sunday1984 2006-12-28
  • 打赏
  • 举报
回复
<(?!img)[\s\S]*?>除了script外都可以

也可以看一下这个
<(\/\s*)?!?((\w+:)?\w+)(\w+(\s*=?\s*(([""'])(\\[""'tbnr]|[^\7])*?\7|\w+)|.{0})|\s)*?(\/\s*)?>
lizhizhe2000 2006-12-28
  • 打赏
  • 举报
回复
顶一下!
jinjuduo 2006-12-27
  • 打赏
  • 举报
回复
<SCRIPT>
var str="<p>姓名:lizhizhe2000(彬彬 ) </p> <p>地址格式等),它具有用来检查给出的字符串是否符合规则的属性和方法。 除此之外,你用RegExp构造器建立的个别正则表达式对象的属性,就已经预先定义好了正则表达式 </p>"
var re =/<p>(\w\W)+?<\/\1>/gi;
var newstr=str.replace(re, '$1');
document.write(newstr)
</SCRIPT>
btbtd 2006-12-27
  • 打赏
  • 举报
回复
//]]>
去掉俺的 AJAX 脚本就OK
btbtd 2006-12-27
  • 打赏
  • 举报
回复

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"
"http://www.w3.org/TR/html4/loose.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>无标题文档</title>
<script type="text/javascript">
//<![CDATA[
//----------------------------------------begin object XMLHTTP --------------------------//
var XMLHTTP={
//-----------------------------------begin request
request:function(){
try{
return new XMLHttpRequest();
} catch(e) {
try{
return new ActiveXObject('microsoft.xmlhttp');
} catch(e){
try{ return new ActiveXObject("Msxml2.XMLHTTP"); } catch(e){}
}
}
},
//-----------------------------------end request
// begin text
text:function(method, url, func){
var request=XMLHTTP.request();
request.open(method, url);
request.onreadystatechange=function(){
if(request.readyState==4&&request.status==200){
if(func) func(request.responseText);
else alert(request.responseText);
}
}
request.send(null);
}
//-----------------------------------end text
} // shawl.qiu script
//----------------------------------------end object XMLHTTP ----------------------------//
onload=function(){
var sHtml=XMLHTTP.text('GET', document.URL, fGet);
}

function fGet(sSrc){
sSrc=sSrc.replace(/<(?!img)[\s\S]*?>/gi,'')

alert(sSrc)
}
//]]>
</script>
</head>

<body>
<form name="form1" method="post" action="">
<p>姓名:lizhizhe2000(彬彬 )
</p>
<p>地址格式等),它具有用来检查给出的字符串是否符合规则的属性和方法。 <br>
除此之外,你用RegExp构造器建立的个别正则表达式对象的属性,就已经预先定义好了正则表达式 </p>
<p><img src="protfield.gif" width="16" height="16">
<img src="protmethod.gif" width="16" height="16"></p>
</form>
</body>
</html>
kidfang 2006-12-27
  • 打赏
  • 举报
回复
网上有现成的,过滤掉所有标签的。你得到<form>到</form>的字符串开始过滤
kidfang 2006-12-27
  • 打赏
  • 举报
回复
占个沙发先

87,910

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧