У меня есть эта сборка SQL для удаления некоторых html-тегов из строки. Это работает очень хорошо для фиксированной строки регулярного выражения, но я бы хотел, чтобы строка регулярного выражения в качестве строкового параметра вызывалась при вызове функции.
Я попытался передать регулярное выражение в виде строки в функциюно это не сработает. Я предполагаю, что я должен передать его в другом формате.
Вот библиотека классов.
using System.Data.SqlTypes;
using System.Text.RegularExpressions;
using Microsoft.SqlServer.Server;
public class Functions
{
[SqlFunction]
public static SqlString RemoveHtmlTags(string inText)
{
// Remove html tags other than<p> <b> <h3> <i> <u> <ul> <ol> <li> <strong>
return Regex.Replace(inText, "<\\s*?\\/?(?!(p|b|h3|i|u|ul|ol|li|strong))\\w*\\s*?>", "");
}
}
И SQL-функция
CREATE FUNCTION [dbo].[ufn_RemoveHtmlTags](@InputText [nvarchar](max))
RETURNS [nvarchar](max) WITH EXECUTE AS CALLER
AS
EXTERNAL NAME [HtmlTextFunctions].[Functions].[RemoveHtmlTags]
GO
Что яхотел бы иметь:
using System.Data.SqlTypes;
using System.Text.RegularExpressions;
using Microsoft.SqlServer.Server;
public class Functions
{
[SqlFunction]
public static SqlString RemoveHtmlTags(string inText, string regexText)
{
// Remove html tags other than<p> <b> <h3> <i> <u> <ul> <ol> <li> <strong>
return Regex.Replace(inText, regexText, "");
}
}