Пытается придумать регулярное выражение, которое удаляет дублирующиеся символы в строке (т.е. сохраняет только первое вхождение)
В частности, я хочу удалить все двоеточия после первого появления
s <- c("note: conducted by j:m",
"location: made :n :apan",
"date: 2010, ma: 3rd")
чтобы стать
note: conducted by jm
location: made in apan
date: 2010, ma 3rd
Лучшее, что я могу получить, это
library(stringr)
str_remove(string = s, pattern = "(?<=:)(.*?):(.*)")
# [1] "note:" "location:" "date:"
РЕДАКТИРОВАТЬ:
Второе лучшее, что я могу получить, это "(:)(?=.*\1)"
на regex.com - он идентифицирует все, кроме последнего :
(что-то вроде того, что я хочу), но не будет работать в R, не знаю почему?
str_remove(string = s, pattern = "(:)(?=.*\1)")
# [1] "note: conducted by j:m" "location: made :n :apan" "date: 2010, ma: 3rd"