Mssql中實現用正規表示式更新字段值

2021-05-21 18:55:57 字數 2069 閱讀 3148

create   function   dbo.regexreplace  

(  

@source   varchar(5000),         --原字串  

@regexp   varchar(1000),         --正規表示式  

@replace   varchar(1000),       --替換值  

@globalreplace   bit   =   0,       --是否是全域性替換  

@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  

go  

-------------------------------------

配置對擴充套件儲存過程的支援

microsoft sql server 2005  -> 配置工具 -> 外圍應用配置器 -> 功能的外圍應用配置 -> ole自動化:支援ole自動化

使用方法:

declare @source nvarchar(4000)

set @source = 'dsafsdf'

select dbo.regexreplace(@source, '/<[^/>]+/>', '', 1, 1)

正規表示式 正規表示式 總結

非負整數 d 正整數 0 9 1 9 0 9 非正整數 d 0 負整數 0 9 1 9 0 9 整數 d 非負浮點數 d d 正浮點數 0 9 0 9 1 9 0 9 0 9 1 9 0 9 0 9 0 9 1 9 0 9 非正浮點數 d d 0 0 負浮點數 正浮點數正則式 英文本串 a za z...

正規表示式 表示式

網域名稱 a za z0 9 a za z0 9 a za z0 9 a za z0 9 interneturl a za z s 或 http w w w 手機號碼 13 0 9 14 5 7 15 0 1 2 3 5 6 7 8 9 18 0 1 2 3 5 6 7 8 9 d 號碼 x x x...

sql正規表示式 SQL中的正規表示式

sql正規表示式 sql中的正規表示式 sql的查詢語句中,有時會需要引進正規表示式為其複雜搜尋指定模式。下面給出一些 regexp 在mysql 語句中應用 非全部 1 匹配字串的開始部分。mysql select fo nfo regexp fo 0mysql select fofo regex...