Как использовать регулярное выражение для поиска специальных символов

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

 * , [ ] { } ' " \ % $ @ ( ) < > ? : ; # ! & / | = + - _ ~ 

Наряду с этим нам нужно идентифицировать строки, которые содержат \n (перевод строки) и \r (возврат каретки) внутри столбца имени.

Пример: я могу найти строки, которые содержат ' в имени, используя запрос ниже.

выберите * из таблицы, где имя типа '%''%';

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


person vidyadhar    schedule 02.09.2015    source источник
comment
stackoverflow.com/ вопросы/16850447/   -  person Praveen    schedule 02.09.2015
comment
Вы можете использовать сопоставление шаблонов SQL Server вместе с LIKE -- WHERE Name LIKE '%[*,\[\]{}''"\\%$@()<>?:;#!&/|=' + CHAR(10) + CHAR(13) + ']%' ESCAPE '\'   -  person GarethD    schedule 02.09.2015
comment
Хороший, добавьте это как ответ...   -  person vidyadhar    schedule 02.09.2015


Ответы (1)


Я надеюсь, что это поможет вам

declare @name nvarchar(33);
-- you can check with this name also
set @name  = ' yourname''g'
-- OR (here i am overriding value but please make sure at the time one SET statement should active)
set @name  = ' * , [ ] { }  " \ % $ @ ( ) < > ? : ; # ! & / | = + - _ ~ '
IF (@name LIKE '%[^a-zA-Z0-9]%')
    PRINT 'Contains "special" characters'
ELSE
    PRINT 'Does not contain "special" characters'
person wiretext    schedule 02.09.2015