查找与替换.弄了好几天了.希望高手帮我改一下..谢谢!

同城同梦 2009-08-26 02:10:30
数据库里目前有上万条数据.内容是以下形式:

1、产品说明:名称:独一味软胶囊13938445887 013103842333 生产厂家:海南海神招商区域:全国各地批准文号:国药准字Z20050090 剂型:软胶囊规格:0.64g*18粒*300盒 功能主治:活血止痛,化瘀止血,外伤骨折,风湿痹痛,痛经出血等症。·具有成熟完善的销售网络; ·通畅的市场渠道; ·良好的商业网信誉; ·具有丰富的市场操作经验,较强的市场开发能力; ·具备终端(OTC,RX)推广能力的公司和个人联系电话:0371-66667736 66667731 网址:www.kangxinyiyao.cn

2、产品说明:适用范围】对于真菌、细菌、病毒、支原体、衣原体具有强力的杀灭作用。适用于各类致病微生物引起的各种症状表现的妇科炎症和阴道感染, 联系方式:029—85086081 13572925981(舒珊)网站www.sxbsyy.com


我想实现的目的是把产品说明里的电话\手机\网址全部清除...
用asp查出来
下面是我写的.希望高手帮我改一下...
<!--#include file="conn.asp"-->

<%
dim strSql,rs
set rs=server.CreateObject("adodb.recordset")
dim zhc,zhc2
'问题一:内容里包含电话\网址的我会...
'电话号码的不知道怎么区分(内容中除了电话号是8位数,别的内容也有包含8位数字的.)。
zhc="服务热线|咨询热线|联系方式|联系电话|招商电话|地址|手机|QQ|qq|http|mail|www."
zhc2=split(zhc,"|")
for i=0 to ubound(zhc2)
strSql="select * from prod_zs where txt_shuoming like '%" &zhc2(i) & "%' order by id desc"
next
rs.open strSql,conn,3,1

for i=1 to 60
%>

u产品ID:<%=rs("id")%>用户ID:<%=rs("user_id")%>产品说明:<%=rs("txt_shuoming")%><br><br>
<%
rs.movenext
next
%>

<%
'问题二:查出上面结果。把含有关键词的字符串去掉
'txt_shuoming 字段是ntext类型 ,测试N次,不能替换(: ..
strsql="UPDATE prod_zs SET txt_shuoming = REPLACE(CAST(txt_shuoming AS varchar(8000)), '%" &zhc2(i) & "%', '')"
conn.Execute (strsql)
%>
...全文
136 14 打赏 收藏 转发到动态 举报
写回复
用AI写文章
14 条回复
切换为时间正序
请发表友善的回复…
发表回复
同城同梦 2009-09-03
  • 打赏
  • 举报
回复
[Quote=引用 13 楼 hlxiuluo 的回复:]
1.给你提供一个想法 首先 判断 数据库中 产品说明 里面包含数字和网址的记录 然后进行手动的修改

2可以考虑导出数据库字段到EXCEL里面然后进行批量的替换
[/Quote]

这个方法好累呀..
大家有没有好一点的方法呢...
发点功能有多少是多少的代码上来..分享一下吧..
HLxiuluo 2009-09-02
  • 打赏
  • 举报
回复
1.给你提供一个想法 首先 判断 数据库中 产品说明 里面包含数字和网址的记录 然后进行手动的修改

2可以考虑导出数据库字段到EXCEL里面然后进行批量的替换
同城同梦 2009-09-02
  • 打赏
  • 举报
回复
再推上来。看看有没有好一点的答案....
poiuy343 2009-08-28
  • 打赏
  • 举报
回复
100%过滤不可能,因为有误差,只有尽量减少误差,从数字的规律入手。
比如先查找 "电话:" 这个字符串后面如果跟了一大串的数字,则很大可能是电话号码。
如果这串数字长度(去掉中间的空格)属于电话号码的位数,则更大可能是电话号码 然后一步一步加以判断。

对于有个上百条的数据asp处理没问题,但是,如果有上万条数据量的话,建议还是别用asp了吧,穷折腾电脑。比较,asp不是用来专门给你处理数据的语言,

这个用VC做一个最好,可以多线程,而且不会超时,用asp一旦处理时间过长,IE就罢工了....
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 dsjt 的回复:]
引用 3 楼 chinmo 的回复:
这个除非是你有库才能做到100%的过滤了
否则用正则肯定有缺陷



除非我有库???....
我有数据库呀...关键词也会查出来.就是电话号码不知道怎么判断. 还有就是替换不知道为啥也不成功....

[/Quote]
与你的数据库没关系
电话号码本来就不能很严格的用正则过滤,除非你有去全国的电话库,否则白搭
再说了,比如 010 65689365 和 010 65689 365 或者 010 6 5 6 8 8 9 3 6 5这中间这么一间隔你怎么过滤?
再说假如你的其他的数据里有类似电话的数字呢?那你也过滤掉?
所以你要达到完美的不可能,只有是类似的全替换还差不多
同城同梦 2009-08-28
  • 打赏
  • 举报
回复
谢谢。你说的很有道理。。看来不好实现了
帮我解决一下第二个问题。
只替换第一个问题查出来所有ID呢。是不是这样不对整个数据库替换,只替换对应ID,就不会死机了。
第二个问题怎么解决呢....


[Quote=引用 8 楼 chinmo 的回复:]
引用 4 楼 dsjt 的回复:
引用 3 楼 chinmo 的回复:
这个除非是你有库才能做到100%的过滤了
否则用正则肯定有缺陷


除非我有库???....
我有数据库呀...关键词也会查出来.就是电话号码不知道怎么判断. 还有就是替换不知道为啥也不成功....


与你的数据库没关系
电话号码本来就不能很严格的用正则过滤,除非你有去全国的电话库,否则白搭
再说了,比如 010 65689365 和 010 65689 365 或者 010 6 5 6 8 8 9 3 6 5这中间这么一间隔你怎么过滤?
再说假如你的其他的数据里有类似电话的数字呢?那你也过滤掉?
所以你要达到完美的不可能,只有是类似的全替换还差不多
[/Quote]
同城同梦 2009-08-28
  • 打赏
  • 举报
回复
VC不会....

[Quote=引用 9 楼 poiuy343 的回复:]
100%过滤不可能,因为有误差,只有尽量减少误差,从数字的规律入手。
比如先查找 "电话:"  这个字符串后面如果跟了一大串的数字,则很大可能是电话号码。
如果这串数字长度(去掉中间的空格)属于电话号码的位数,则更大可能是电话号码 然后一步一步加以判断。

对于有个上百条的数据asp处理没问题,但是,如果有上万条数据量的话,建议还是别用asp了吧,穷折腾电脑。比较,asp不是用来专门给你处理数据的语言,

这个用VC做一个最好,可以多线程,而且不会超时,用asp一旦处理时间过长,IE就罢工了....

[/Quote]
河南浪人 2009-08-27
  • 打赏
  • 举报
回复
学习
gsdfdfdere19800811 2009-08-27
  • 打赏
  • 举报
回复
顶起
同城同梦 2009-08-27
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 chinmo 的回复:]
这个除非是你有库才能做到100%的过滤了
否则用正则肯定有缺陷

[/Quote]

除非我有库???....
我有数据库呀...关键词也会查出来.就是电话号码不知道怎么判断. 还有就是替换不知道为啥也不成功....
  • 打赏
  • 举报
回复
这个除非是你有库才能做到100%的过滤了
否则用正则肯定有缺陷
同城同梦 2009-08-27
  • 打赏
  • 举报
回复
高手...专家...版主...都在哪呀...
loveinet_168 2009-08-27
  • 打赏
  • 举报
回复
顶上。。
同城同梦 2009-08-27
  • 打赏
  • 举报
回复
晕呀.是这个问题太简单了还是太复杂了...怎么没有人帮改改改呢...

28,406

社区成员

发帖
与我相关
我的任务
社区描述
ASP即Active Server Pages,是Microsoft公司开发的服务器端脚本环境。
社区管理员
  • ASP
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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