<% Dim Db,conn,Rs1,Rs2,Str1,Str2,I,Re str1="\<font[^\>]*\>" '要替换的字符串,支持正则<font> str2="<font>" '替换为的字符串 Db="db.mdb" '这是你的数据库地址 table="Article" '这是要替换的数据库的表名称 ziduan="Content" '这是要替换的数据库的表的字段名称 '以下无需改动 '创建正则对象 Set Re=new RegExp Re.IgnoreCase =True Re.Global=True Set Conn=Server.CreateObject("ADODB.Connection") Conn.Open "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="&server.mappath(Db) Set Rs1 = Conn.OpenSchema(20) Do While Not Rs1.Eof Set Rs2=Server.Createobject("adodb.recordset") Rs2.Open "select "& ziduan &" from "& table &"",conn,1,3 Do While Not Rs2.Eof For I=0 to Rs2.fields.count-1 '遍历所有字段 Rs2(Rs2(i).name)=Myreplace(Rs2(i).value&"") Next Rs2.Movenext Loop Rs2.Close Set Rs2=nothing Rs1.MoveNext Loop Rs1.Close Set Rs1=Nothing Conn.close Set Conn=Nothing Set Re=Nothing response.write " <font color='#ff3300'><b>替换数据成功!</b></font>" '自定义的替换函数 Function myreplace(byval Tstr) If Tstr="" Or isnull(Tstr) Then Exit Function Else Re.Pattern=Str1 myReplace =Re.Replace(Tstr,Str2) End If End Function %>
和快乐签约
2024-05-01 01:31:49
--SQL正则替换函数 CREATE function dbo.regexReplace ( @source ntext, --原字符串 @regexp varchar(1000), --正则表达式 @replace varchar(1000), --替换值 @globalReplace bit = 1, --是否是全局替换 @ignoreCase bit = 0 --是否忽略大小写 ) returnS varchar(1000) AS begin declare @hr integer declare @objRegExp integer declare @result varchar(5000)
exec @hr = sp_OACreate 'VBScript.RegExp', @objRegExp OUTPUT IF @hr <> 0 begin exec @hr = sp_OADestroy @objRegExp return null end exec @hr = sp_OASetProperty @objRegExp, 'Pattern', @regexp IF @hr <> 0 begin exec @hr = sp_OADestroy @objRegExp return null end exec @hr = sp_OASetProperty @objRegExp, 'Global', @globalReplace IF @hr <> 0 begin exec @hr = sp_OADestroy @objRegExp return null end exec @hr = sp_OASetProperty @objRegExp, 'IgnoreCase', @ignoreCase IF @hr <> 0 begin exec @hr = sp_OADestroy @objRegExp return null end exec @hr = sp_OAMethod @objRegExp, 'Replace', @result OUTPUT, @source, @replace IF @hr <> 0 begin exec @hr = sp_OADestroy @objRegExp return null end exec @hr = sp_OADestroy @objRegExp IF @hr <> 0 begin return null end
return @result end
使用举例: Select id,dbo.regexReplace(字段,'<font([^>])*>','<font>',1,0) AS 别名 From 表
漫天飞雪的夏日
2024-05-01 11:33:01
改成 UPDATE form SET content = '<font>' WHERE content like '<font%' 试试。 凡是以<font开头的都替换为<font>
旧事酒浓
2024-05-01 08:09:16
应该就是前后都模糊匹配的问题, UPDATE form SET content = '<font>' WHERE content like '*<font*> '; 这样应该就可以了, 呵呵,希望能有帮助,^_^