удалить кавычки из строки в начале и в конце, только если они присутствуют

Я хочу очистить строку, содержащую экранированные кавычки. Я хочу удалить экранированные кавычки конца и начала строки, но сохранить все кавычки внутри строки. Я придумал следующее.

library(stringr)
s1 <- "\"He said:\"Hello\" - some word\""
str_replace_all(s1, "(^\\\")|(\\\"$)", "")

> [1] "He said:\"Hello\" - some word"

Сейчас я борюсь с тем, что я хочу удалить кавычки только тогда и только тогда, когда они есть в начале И в конце. В противном случае нет. Следующее выражение ложно удаляет ведущее.

s2 <- "\"Hello!\" he said"
str_replace_all(s2, "(^\\\")|(\\\"$)", "")

> [1] "Hello!\" he said"

Здесь мое регулярное выражение должно указывать, что я хочу удалить их только в том случае, если вся строка заключена в экранированные кавычки. Как я могу это сделать?

5
задан Mark Heckmann 30 July 2012 в 09:45
поделиться