Замена каждой пары ""
на "
, когда у вас есть несколько последовательных вхождений, приведет к тому, что несколько последовательных двойных кавычек останутся в строке. Вы хотите сопоставить 1 или несколько символов "
и заменить их одним "
или сопоставить и удалить любые "
, за которыми следует "
.
Вы можете использовать
gsub('"+', '"', txt)
См. Демонстрацию R
Шаблон "+
соответствует одной или нескольким двойным кавычкам и заменяет фрагменты одинарными кавычками.
С stringr::str_remove_all
, вы можете использовать регулярное выражение, которое будет соответствовать любому "
, за которым следует "
:
library(stringr)
str_remove_all(txt, '"(?=")')
См. демонстрацию регулярного выражения . Регулярное выражение здесь содержит (?=")
положительный просмотр вперед, который требует наличия "
непосредственно справа от текущего местоположения.
Та же концепция может быть передана в базе R с регулярным выражением PCRE (используйте perl=TRUE
):
gsub('"(?=")', '"', txt, perl=TRUE)