数据库字段的正则批量替换例子

'123<和这个>56<7>8'替换为'123568'
最直接的方法就是想到正则表达式
如果是SQLServer则不直接支持,可以借助js的com组件

--测试字符串

declare @inStr varchar(800)

set @inStr='123<和这个>56<7>8'

--测试语句

declare @str  varchar(800)

set @str='var data = "'+@inStr+'";var reCat = /<[^>]+>/gi;data.replace(reCat,"");'

declare @object int 

declare @r varchar(800)

exec sp_OACreate 'MSScriptControl.ScriptControl',@object output   

exec sp_OASetProperty @object, 'Language','javascript' 

exec sp_OAMethod @object, 'eval', @r out,@str 

select @r

--输出

/*123568*/

 

如果是Oracle则简单很多,可以直接用SQL语句

 

Select REGEXP_REPLACE('123<和这个>56<7>8','<[^>]+>', '') as r FROM dual;
/*
R
123568
*/


posted on 2008-12-26 14:20  代码王子  阅读(229)  评论(0编辑  收藏  举报

导航