phiên bản sửa đổi của Hơi Julio's answer.
-- MS SQL using VBScript Regex
-- select dbo.RegexReplace('aa bb cc','($1) ($2) ($3)','([^\s]*)\s*([^\s]*)\s*([^\s]*)')
-- $$ dollar sign, $1 - $9 back references, $& whole match
CREATE FUNCTION [dbo].[RegexReplace]
( -- these match exactly the parameters of RegExp
@searchstring varchar(4000),
@replacestring varchar(4000),
@pattern varchar(4000)
)
RETURNS varchar(4000)
AS
BEGIN
declare @objRegexExp int,
@objErrorObj int,
@strErrorMessage varchar(255),
@res int,
@result varchar(4000)
if(@searchstring is null or len(ltrim(rtrim(@searchstring))) = 0) return null
set @result=''
exec @res=sp_OACreate 'VBScript.RegExp', @objRegexExp out
if(@res <> 0) return '..VBScript did not initialize'
exec @res=sp_OASetProperty @objRegexExp, 'Pattern', @pattern
if(@res <> 0) return '..Pattern property set failed'
exec @res=sp_OASetProperty @objRegexExp, 'IgnoreCase', 0
if(@res <> 0) return '..IgnoreCase option failed'
exec @res=sp_OAMethod @objRegexExp, 'Replace', @result OUT,
@searchstring, @replacestring
if(@res <> 0) return '..Bad search string'
exec @res=sp_OADestroy @objRegexExp
return @result
END
Bạn sẽ cần thủ tục Ole Tự động bật trong SQL:
exec sp_configure 'show advanced options',1;
go
reconfigure;
go
sp_configure 'Ole Automation Procedures', 1;
go
reconfigure;
go
sp_configure 'show advanced options',0;
go
reconfigure;
go
Nguồn
2016-07-19 15:21:42
Hi mất xem bài viết này: http://www.codeproject.com/Articles/42764/Regular-Expre ssions-in-MS-SQL-Server-2005-2008 – Mohsen
Ngoài ra còn có một giải pháp ** TSQL ** ** + Windows API ** tại [Robyn Page và Phil Factor's] (https: //www.simple-talk). com/sql/t-sql-programming/tsql-regular-expression-workbench /) dựa trên [VBScript.RegExp] (https://msdn.microsoft.com/en-us/library/ee236360%28v=vs. 84% 29.aspx) lớp, mà, tôi tin rằng, được vận chuyển trên mọi phiên bản Windows kể từ Windows 2000. –
Nếu bạn hoàn toàn cần RegEx qua TSQL, một tùy chọn cho SQL Server 2016 trở lên là [sử dụng dịch vụ R] (https : //stackoverflow.com/questions/194652/sql-server-regular-expressions-in-t-sql/46536661#46536661). – DMason