Вот моя попытка использовать regmatches
вместе со следующим шаблоном регулярных выражений:
color: (\\S+) (\\S+)(?=Size|Verified|$)
. Это позволяет отделить первый и второй цвета, причем конец второго цвета задается словами Size
илиVerified
конца строки.
x <- c("color: red greenSize: 2 CountVerified Purchase",
"color: red greenVerified Purchase",
"color: red greenSize: 2 Count",
"color: red green")
sapply(x, function(x) {
result <- regmatches(x, regexec("color: (\\S+) (\\S+)(?=Size|Verified|$)", x, perl=TRUE))[[1]]
c(result[2], result[3])
})
Это выводит (немного грязно):
color: red greenSize: 2 CountVerified Purchase
[1,] "red"
[2,] "green"
color: red greenVerified Purchase color: red greenSize: 2 Count
[1,] "red" "red"
[2,] "green" "green"
color: red green
[1,] "red"
[2,] "green"