Поиск Замена необработанной строки двойными обратными косыми чертами с использованием регулярных выражений выводит только одну обратную косую черту

#javascript #python #regex

Вопрос:

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

Я извлекаю содержимое строк с помощью регулярного выражения, которое затем заменит другие части файла JavaScript, в котором я читаю. Я знаком с необработанными строками при чтении данных, но когда я заменяю определенные части, содержащие двойную обратную косую черту, печатается только одна. Я знаю, что он ускользает из строки из-за обратной косой черты на», но я в растерянности из-за этого. Добавление третьего «» к нему, сделав его»\», решит проблему, но я не могу этого сделать из-за типа данных, с которыми я работаю.

Например, я хочу заменить все экземпляры, в которых строка «Ch» найдена в файле, который я читаю, на»\», используя регулярное выражение. Эти новые данные затем выводятся в новый файл.

Как мне заменить определенное содержимое строкой»\», гарантируя, что ничего не экранируется и выводится только»\»?

Упрощенный пример кода для тестирования:

 string = R'"\"'  
Converted_Text = re.sub("Ch", ' '   string, Converted_Text)  
with open('output.js','w') as w:
    w.write(Converted_Text.strip().replace('n',''))  
 

Пример файла, считываемого в:

 var test = Ex("Temp")   Ch   wn;

var num1= 1;
var num2 =2;
var sum = num1 num2;
var blah, meh;  
 

Ответ №1:

Вы можете сначала заменить CH на \CH и снова заменить CH на \ .