我有一个输入字符串,其中可能只包含特殊字符,也可能包含特殊字符和字母或任何其他语言文本(如中文)的组合。
我要检查字符串是否仅包含特殊字符,而没有任何其他语言字母。
DECLARE @String NVARCHAR(200) ;
Scenario 1: SET @String='CHG5%#'
Scenario 2: SET @String='%#$' --> As it has only special characters, it should print false.
Scenario 3: SET @String='市汇聚%#'
Scenario 4: SET @String='市汇聚'
IF(@String NOT LIKE '%[a-zA-Z0-9]%')
print 'False' --> String has only special characters without any other letters.
ELSE
print @String
以上代码可用于英文字母,但如果字符串具有中文文本,则失败。
如何在上述正则表达式中包含中文
答案 0 :(得分:0)
我相信这应该可以捕获所有汉字,所有不带重音的基本拉丁字符以及所有西方数字。但是,如果我错过了一些内容,则可以自己进行调整-查看任何Unicode表,然后找到所需字符块的边框。就像您可以写A-Z
来捕捉从65到90的所有字符一样,您也可以写⺀-⿕
来捕捉从11904到12245的所有字符。最终由您决定什么是“特殊字符”。字符”。例如。 Ⓐ(“拉丁文大写字母A”(U + 24B6))是字母还是特殊字符?
LIKE '%[a-zA-Z0-9⺀-⿕㐀-䶵一-俿]%';