我正在尝试过滤用作 Outlook 邮件主题行的字符串。我使用过滤器 b/c 一些具有特殊字符的字符串会将主题行转换为我想要阻止的 Unicode。我正在尝试使用 PATINDEX,但无法将括号放入模式中,有没有人知道如何做到这一点和/或有一个好的网站可以分享为 PATINDEX 创建模式的指南。这是我所拥有的:
-- First replaces special characters with similar safe ones.
-- Finally excludes all other characters not specified in the pattern.
-- =============================================
ALTER Function [dbo].[RemoveSpecialCharacters](@Temp VarChar(1000))
Returns VarChar(1000)
AS
BEGIN
DECLARE @KeepValues as varchar(50)
SET @Temp = Replace(Replace(Replace(Replace(Replace(Replace(Replace(@Temp,'”','"'),'“','"'),'‘','`'),'’','`'),'–','-'),'[','('),']',')')
SET @KeepValues = '%[^a-z0-9()."`:;,#&+*\/-]%'
WHILE PatIndex(@KeepValues, @Temp) > 0
SET @Temp = Stuff(@Temp, PatIndex(@KeepValues, @Temp), 1, '')
RETURN @Temp
END
正如你所看到的,因为我不知道如何在模式中获得括号,所以现在我用括号替换它们。