Как найти двойные кавычки между одинарные кавычки с помощью выражения регулярных выражений? - PullRequest
0 голосов
/ 30 сентября 2019

У меня есть строка типа «как», «вы», я хочу заменить кавычки, которые находятся внутри кавычек, окружающих «есть», с помощью регулярных выражений в python

input_file =  'D:/Extracts/yourFileName.csv'
file_output= 'D:/Extracts/yourFileName_out.csv'

with open(input_file, 'r',encoding="utf8") as f, open(file_output, 'w',encoding="utf8") as fo:
    for line in f:
        fo.write(line.replace('"', '\"').replace(""", ""))

Я хочу выводкак "how \"are\" you"

1 Ответ

1 голос
/ 30 сентября 2019

Строки '\"' и '"' идентичны: обе они представляют собой одну двойную кавычку, поскольку последовательность \" кодирует символ двойной кавычки (обычно для использования в строках, * кавычках * 1004).

Если вы действительно хотите использовать обратную косую черту перед кавычкой, вам нужно ее избежать:

fo.write(line.replace('"', '\\"'))

Чтобы не заменить первый и последний символ, вместо этого можно использовать регулярные выражения:

fo.write(re.sub('(?<!^)"(?!$)', '\\"', line))

Регулярное выражение состоит из отрицательного заглядывания назад ((?<!^); утверждение, что строка не начинается перед кавычкой), самого символа кавычки и отрицательного заглядывания ((?!$); утверждение, что нетстрока заканчивается после цитаты).

Демо

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