【发布时间】:2016-06-09 14:04:23
【问题描述】:
正则表达式应该只允许从 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。
有人知道如何解决这个问题吗?
【问题讨论】:
-
你应该使用一个更清楚地显示变音符号的例子
-
Like 不是正则表达式,^ 不是
标签: regex tsql diacritics