Как сравнить строку с китайскими символами, используя выражение регулярных выражений в SQL Server - PullRequest
0 голосов
/ 21 мая 2019

У меня есть строка ввода, которая может содержать либо только специальные символы, либо комбинацию специальных символов и алфавитов, либо текст любого другого языка, например китайский.

Я хочу проверить, содержит ли строка только специальные символы без букв другого языка.

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 

Выше код работает для английских букв, но он не работает, если строка содержит текст на китайском языке.

Как включить китайский язык в вышеприведенное регулярное выражение

1 Ответ

0 голосов
/ 21 мая 2019

Я считаю, что это должно работать, чтобы поймать все китайские иероглифы, все основные латинские символы без акцентов и все западные цифры.Однако, если я что-то пропустил, вы можете настроить его самостоятельно - посмотрите на любую таблицу Unicode и найдите границы блоков символов, которые вы хотите.Так же, как вы можете написать A-Z, чтобы перехватить все символы от 65 до 90, вы также можете написать ⺀-⿕, чтобы перехватить все символы с 11904 по 12245. В конечном счете, вам решать, что такое «специальный символ».Например, Ⓐ («ЗАКРЫТЫЙ ЛАТИНСКИЙ КАПИТАЛ ПИСЬМО А» (U + 24B6)) буква или специальный символ?

LIKE '%[a-zA-Z0-9⺀-⿕㐀-䶵一-俿]%';
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...