MySQL поиск и замена указанных c комбинаций символов - PullRequest
0 голосов
/ 18 июня 2020

ПРИМЕЧАНИЕ: это весело - мне приходилось обновлять этот пост несколько раз, потому что он неправильно отображает комбинации символа \ :)

Мне нужно иметь возможность искать и заменять специфику c набор символов без ущерба для спецификации c разрешенных комбинаций или избыточности этих символов. Возьмем, к примеру, основной escape-символ \.

Строка, которая нуждается в обработке, может выглядеть так:

"This is \ a test! \\r\\n Let's have \r \n \\\ Some fun!"

Теперь мне нужно адресовать каждый \ для перевода на JSON (каждый \ должен быть \\\\), но в то же время я не хочу касаться \ r или \ n. Я также хочу иметь возможность различать \ r и \ n против \ r и \ n. Есть ли метод, использующий REGEXP, который я мог бы принять, который взял бы вышеуказанное и преобразовал его в:

"This is \\\\ a test! \\r\\n Let's have \\r \\n \\\\\\\\\\\\ Some fun!"

Примечание. Я хочу, чтобы каждый escape \ был 4x \, а также для обеспечения двойного экранирования специальных экранированных символов, но не объединять их (4x нужно применять только к автономным).

Все сводится к тому, что я не могу контролировать поступающие данные, но могу контролировать их очистку. Я мог получить странные данные с \ ///// \ кем-то, кто просто развлекался. Мне нужно иметь возможность очистить это как значение ТЕКСТА и подготовить его для вставки в базу данных с помощью динамически созданного оператора SQL, который выполняется, что означает, что один \ должен быть \\\\, а / игнорируется (для пример).

Я думаю, мне сначала нужно выполнить сканирование c специальных escape-последовательностей (таких как \ ', \ b, \\, \ r, et c.), но в то же время убедитесь, что они еще не экранированы. Мне нужно убедиться, что дополнительные сканирования \ не соответствуют каким-либо особым стандартам (и просто экранируются сами по себе).

Я надеюсь, что кто-то уже справился с этим и есть существующая функция или SP разработан для подобных вещей, поэтому я не изобретаю велосипед.

Спасибо!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...