中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --
联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum
游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟
中国DOS联盟论坛
现在时间是 2026-08-02 11:36
48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行
DOS批处理 & 脚本技术(批处理室) » 怎么只去除网页源文件中所有的html标签
可打印版本  2,678 / 11
第1楼 vkill 发表于 2006-11-13 01:58
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
怎么只去除网页源文件中所有的html标签
我试了 sed "s/<\/.*>//;s/<.*>//"
可这样使用像<td><p align="left">分类列表: <a href="#1">| 网络</a> | <a href="#2">文件工作</a> | <a href="#3">系统 </a> | <a href="#4">服务器</a> | <a href="#5">多媒体</a> | <a href="#6">其他 | </a></p></td>这类的就不可以


我还试了 sed "s/\(.*\)<\/.*>/\1/;s/\(.*\)<.*>/\1/" 比上面的好点,可怎么让这重复执行,直到完全没有html标签

或者有什么别的好工具?请教大家
第2楼 vkill 发表于 2006-11-13 02:10
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
目的是:

有时候,我们在数据库中存储的是一段段的HTML文本,但是取出来的时候,有时又不需要那些HTML标签,而只是需要纯文本,就像我们在页面上看到的文字一样,所以,就需要去掉那些HTML标签,只保留文本的内容


baidu搜索

String noHtmlContent = content.replaceAll("<*>","");
这句什么意思?是vbs吧!

[ Last edited by vkill on 2006-11-13 at 02:12 AM ]
第3楼 electronixtar 发表于 2006-11-13 05:29
铂金会员 发帖 2,672 积分 7,493
不要考虑偏了。例如 <script>alert('1')</script> ,页面不会显示alert('1'),但是用的用你的思路转换出来,会显示的。还有 HTML 转义字符怎么办?例如 hello&nbsp;DOS,又要考虑一大堆东西。所以还是用系统自带组件IE来转换的好。可以搜索 2txt 关键字,看看vbs版的 htm2txt
第4楼 3742668 发表于 2006-11-13 06:18
荣誉版主 发帖 718 积分 2,013

无参数弹出对话框提示输入代码,有参数则自动转换,无临时文件,vbs版,可在bat中用cscript.exe //nologo调用。
第5楼 vkill 发表于 2006-11-15 01:26
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
谢谢楼上两位,不过我想用sed解决,因为有什么这些html标签对用sed提取一些网页中的东西还有用,可以说是木的是不完全去掉
第6楼 vkill 发表于 2006-11-15 01:34
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
还有就是我主要是想用 正则表达式 解决
第7楼 electronixtar 发表于 2006-11-15 04:51
铂金会员 发帖 2,672 积分 7,493
这样阿,可以搜索下 51js.com 上关于 HTML标签 的正则
第8楼 vkill 发表于 2006-11-16 04:03
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
Originally posted by electronixtar at 2006-11-15 04:51:
这样阿,可以搜索下 51js.com 上关于 HTML标签 的正则


51js.com 上怎么什么也没有?
第9楼 3742668 发表于 2006-11-16 13:44
荣誉版主 发帖 718 积分 2,013
试试:
vbs版的,也是正则表达式,不知道是否和你的要求相符。另外,还有一种vbs方案,对代码要求较高,不规范(xhtml规范)的代码无法得到正常结果:
第10楼 vkill 发表于 2006-11-17 01:45
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
我搜索到了 一个

sed 's/<[^>]*>//g'

因为sed在使用s命令的时候,是寻找最长的匹配,所以使用 sed 's/<.*>//' 是不能得到想要的结果的.而使用上面的例子,总是寻找以"<"开头,以">"结尾的最短的匹配
第11楼 vkill 发表于 2006-11-17 01:46
金牌会员 发帖 1,744 积分 4,103 来自 甘肃.临泽
3742668斑竹发的vbs看不懂,所以暂时先用sed
第12楼 hxuan999 发表于 2006-11-23 02:57
中级用户 发帖 161 积分 337
SED???
[ 联系联盟系统管理团队 - 中国DOS联盟 - 标准版 ]
Sponsored by ifanr Inc | © 2001–2023