|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『楼 主』:
怎么只去除网页源文件中所有的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标签
或者有什么别的好工具?请教大家
|
|
2006-11-13 01:58 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
2 楼』:
目的是:
有时候,我们在数据库中存储的是一段段的HTML文本,但是取出来的时候,有时又不需要那些HTML标签,而只是需要纯文本,就像我们在页面上看到的文字一样,所以,就需要去掉那些HTML标签,只保留文本的内容
baidu搜索
String noHtmlContent = content.replaceAll("<[^>]*>","");
这句什么意思?是vbs吧!
[ Last edited by vkill on 2006-11-13 at 02:12 AM ]
|
|
2006-11-13 02:10 |
|
|
electronixtar
铂金会员
积分 7493
发帖 2672
注册 2005-9-2
状态 离线
|
『第
3 楼』:
不要考虑偏了。例如 <script>alert('1')</script> ,页面不会显示alert('1'),但是用的用你的思路转换出来,会显示的。还有 HTML 转义字符怎么办?例如 hello DOS,又要考虑一大堆东西。所以还是用系统自带组件IE来转换的好。可以搜索 2txt 关键字,看看vbs版的 htm2txt
|
C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |
|
2006-11-13 05:29 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
4 楼』:
If WScript.Arguments.Count < 1 Then
str = InputBox("输入源码:","提示")
Else
str = WScript.Arguments(0)
End If
Set oIE = CreateObject("InternetExplorer.Application")
oIE.Navigate "about:blank"
oIE.Document.write "<html><body></body></html>"
oIE.Document.body.innerHTML = str
WScript.Echo oIE.Document.body.innerText 无参数弹出对话框提示输入代码,有参数则自动转换,无临时文件,vbs版,可在bat中用cscript.exe //nologo调用。
|
|
2006-11-13 06:18 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
5 楼』:
谢谢楼上两位,不过我想用sed解决,因为有什么这些html标签对用sed提取一些网页中的东西还有用,可以说是木的是不完全去掉
|
|
2006-11-15 01:26 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
6 楼』:
还有就是我主要是想用 正则表达式 解决
|
|
2006-11-15 01:34 |
|
|
electronixtar
铂金会员
积分 7493
发帖 2672
注册 2005-9-2
状态 离线
|
『第
7 楼』:
这样阿,可以搜索下 51js.com 上关于 HTML标签 的正则
|
C:\>BLOG http://initiative.yo2.cn/
C:\>hh.exe ntcmds.chm::/ntcmds.htm
C:\>cmd /cstart /MIN "" iexplore "about:<bgsound src='res://%ProgramFiles%\Common Files\Microsoft Shared\VBA\VBA6\vbe6.dll/10/5432'>" |
|
2006-11-15 04:51 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
8 楼』:
Quote: | Originally posted by electronixtar at 2006-11-15 04:51:
这样阿,可以搜索下 51js.com 上关于 HTML标签 的正则 |
|
51js.com 上怎么什么也没有?
|
|
2006-11-16 04:03 |
|
|
3742668
荣誉版主
积分 2013
发帖 718
注册 2006-2-18
状态 离线
|
『第
9 楼』:
试试:
strFilter = "<[^>]+>"
WScript.echo HtmlFilter(InputBox("输入字符串:"),strFilter)
Function HtmlFilter(str,pattern)
Set regEx = New RegExp
With regEx
.Global = True
.IgnoreCase = True
.Pattern = pattern
HtmlFilter = .Replace(str,"")
End With
End Function vbs版的,也是正则表达式,不知道是否和你的要求相符。另外,还有一种vbs方案,对代码要求较高,不规范(xhtml规范)的代码无法得到正常结果:
Set oXML = CreateObject("Microsoft.XMLDOM")
With oXML
.loadXML InputBox("请输入字符串:")
WScript.Echo .text
End With
|
|
2006-11-16 13:44 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
10 楼』:
我搜索到了 一个
sed 's/<[^>]*>//g'
因为sed在使用s命令的时候,是寻找最长的匹配,所以使用 sed 's/<.*>//' 是不能得到想要的结果的.而使用上面的例子,总是寻找以"<"开头,以">"结尾的最短的匹配
|
|
2006-11-17 01:45 |
|
|
vkill
金牌会员
积分 4103
发帖 1744
注册 2006-1-20 来自 甘肃.临泽
状态 离线
|
『第
11 楼』:
3742668斑竹发的vbs看不懂,所以暂时先用sed
|
|
2006-11-17 01:46 |
|
|
hxuan999
中级用户
DOS之日
积分 337
发帖 161
注册 2006-11-4
状态 离线
|
『第
12 楼』:
SED???
|
for /f %%h in (`echo hxuan`) do for /f %%x in (`echo hxuan`) do if %%h==%%x nul |
|
2006-11-23 02:57 |
|