ПРИМЕЧАНИЕ: это весело - мне приходилось обновлять этот пост несколько раз, потому что он неправильно отображает комбинации символа \ :)
Мне нужно иметь возможность искать и заменять специфику 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 разработан для подобных вещей, поэтому я не изобретаю велосипед.
Спасибо!