Nieco zmodyfikowana wersja 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
Musisz Procedury automatyzacji OLE włączona w 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
Hi wziąć spójrz na ten artykuł: http://www.codeproject.com/Articles/42764/Regular-Expre ssions-in-MS-SQL-Server-2005-2008 – Mohsen
Istnieje również dobre ** rozwiązanie TSQL ** ** + Windows API ** w [Robyn Page i Phil Factor's] (https: //www.simple-talk. com/sql/t-sql-programming/tsql-regular-expression-workbench /), który opiera się na [VBScript.RegExp] (https://msdn.microsoft.com/en-us/library/ee236360%28v=vs. 84% 29.aspx), która, jak sądzę, jest dostarczana na każdej wersji Windows od Windows 2000. –
Jeśli absolutnie pozytywnie potrzebujesz RegEx za pośrednictwem TSQL, opcja dla SQL Server 2016 i nowszych wersji to [używaj usług R] (https) : //stackoverflow.com/questions/194652/sql-server-regular-expressions-in-t-sql/46536661#46536661). – DMason