Удалить цитаты, которые окружают подстроку, но оставить автономные цитаты - PullRequest
2 голосов
/ 24 марта 2019

Я хочу удалить кавычки, которые окружают подстроки, но я хочу сохранить кавычки, которые не окружают какую-либо подстроку.

dq = 'EXAMPLE "DOUBLE QUOTE" bla 8.54" (inches) long'   
>>> 'EXAMPLE "DOUBLE QUOTE" bla 8.54" (inches) long'

ds = 'EXAMPLE \'SINGLE QUOTE\' bla 1900\' (feet) long'
>>> "EXAMPLE 'SINGLE QUOTE' bla 1900' (feet) long"

Поэтому я хочу удалить кавычки, такие как "DOUBLE QUOTE" и 'SINGLE QUOTE', ноМне нужно сохранить отдельные цитаты, такие как 8.54" и 1900', которые важны, поскольку они представляют единицы длины в дюймах и футах.

Как я могу это сделать?

1 Ответ

4 голосов
/ 24 марта 2019

Если вы предполагаете, что строки в кавычках идут после пробела или находятся в начале строки (используя эту группу (\s|^), вы можете отличить единицу от них:

import re

dq = 'EXAMPLE 15" "DOUBLE QUOTE" bla 8.54" (inches) long'  # added another 15" string

print(re.sub('(\s|^)[\'"](.*?)[\'"]',r"\1\2",dq))  # non-greedy substitution

output:

EXAMPLE 15" DOUBLE QUOTE bla 8.54" (inches) long
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...