如何在MSQL中匹配变音符号与正则表达式

时间:2016-06-09 14:04:24

标签: regex tsql diacritics

正则表达式只允许从a到z,空格和破折号( - )的字符。

我的示例脚本有什么问题?

DECLARE @firstNameRegex VARCHAR(100)='%[^a-z -]%';
DECLARE @firstName VARCHAR(100) = 'Çranko'

IF @firstName LIKE @firstNameRegex
BEGIN
    PRINT 'YES'
END
ELSE
BEGIN
   PRINT 'NO'
END

似乎在做LIKE时将Ç转换为C并且它通过,但不应该。 还有一点需要注意,COLLATION设置为SQL_Latin1_General_Cp1251_CS_AS。

有没有人知道如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

非常确定范围正在打破你想要的东西 把整个字母表放在

'%[^ abcdefghijklmnopqrstuvwxyz - ]%'

我只用'%[^ cranko - ]%'测试,但它对我有用