Chcę wyczyścić ciąg znaków zawierający znaki cudzysłowu. Chcę usunąć znaki ujęte w cudzysłów na końcu i początku łańcucha, ale zachować wszystkie znaki zapytania w ciągu znaków. To, co wymyśliłem, jest następujące.usuń cudzysłowy z ciągu znaków na początku i końcu, tylko jeśli oba są obecne.
library(stringr)
s1 <- "\"He said:\"Hello\" - some word\""
str_replace_all(s1, "(^\\\")|(\\\"$)", "")
> [1] "He said:\"Hello\" - some word"
Co walczę ze teraz jest to, że chcę tylko, aby usunąć cudzysłowy tylko wtedy, gdy istnieje jeden na początku i na końcu. W przeciwnym razie. Poniższe wyrażenie niesłusznie usuwa wiodącą.
s2 <- "\"Hello!\" he said"
str_replace_all(s2, "(^\\\")|(\\\"$)", "")
> [1] "Hello!\" he said"
Oto mój regex powinien wskazywać, że chcę tylko, aby usunąć je w przypadku, gdy cały łańcuch jest owinięty w uciekły cudzysłowie. Jak mogę to zrobić?