如何在 SQL 中将变音符号与正则表达式匹配
How to match diacritics with regex within TSQL
正则表达式应仅允许从 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.
有人知道如何解决这个问题吗?
很确定范围就是打破你想要的东西
只需将整个字母表放入
'%[^abcdefghijklmnopqrstuvwxyz -]%'
我只用“%[^cranko -]%”进行测试,但它对我有用
正则表达式应仅允许从 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.
有人知道如何解决这个问题吗?
很确定范围就是打破你想要的东西
只需将整个字母表放入
'%[^abcdefghijklmnopqrstuvwxyz -]%'
我只用“%[^cranko -]%”进行测试,但它对我有用