У меня есть следующая строка
word <- 'Fu Tien Mansion, Taikoo Shing, Hong Kong'
и я хочу извлечь слово между двумя запятыми и объединить его с первым словом, какое регулярное выражение использовать?
Желаемый вывод:
'Taikoo Shing Fu Tien Mansion'
Мы можем использовать sub для захвата подстрок как группы, а при замене использовать обратные ссылки этой группы
sub
sub("^([^,]+),\\s*([^,]+),.*", "\\2 \\1", word) #[1] "Taikoo Shing Fu Tien Mansion"
sapply(word, function(w){ ind = gregexpr(",", w)[[1]] paste(substring(w, ind[1] + 2, ind[2] - 1), substring(w, 1, ind[1] - 1)) }) #Fu Tien Mansion, Taikoo Shing, Hong Kong # "Taikoo Shing Fu Tien Mansion"
> x <- strsplit(word, ",")[[1]] > paste(x[2], x[1]) [1] " Taikoo Shing Fu Tien Mansion
Вы также можете использовать sapply с strsplit -
sapply
strsplit
> paste(trimws(sapply(strsplit(word,","), `[`, 2)), trimws(sapply(strsplit(word,","), `[`, 1))) [1] "Taikoo Shing Fu Tien Mansion"