Учитывая этот вид текста,
this_txt <- "Blah blah blah particular phrase this guy, this other guy, that guy, that other guy, or something else blah blah blah, blah blah. Blah blah blah, blah; and so blah."
Мне нужно извлечь "этот парень, этот другой парень, тот парень, тот другой парень, что-то еще"
Итак, мне нужно указать регулярному выражению, чтобы оно совпадало с любой последовательностью слов, встречающейся между одним из следующих:
две запятые
"конкретная фраза" и запятая
запятая и "или"
"или" и пробел
Я был бы доволен решением, которое включает в себя несколько нежелательных слов, если это самое большее, что можно задать для регулярных выражений.
Я полагаю, что код будет выглядеть примерно так (который не запускается, потому что я полный нью-рег):
this_txt <- "Blah blah blah particular phrase this guy, this other guy, that guy, that other guy, or something else blah blah blah, blah blah. Blah blah blah, blah; and so blah."
this_pattern <- "^.*\\b(particular phrase|,|or)\\W(\\w+\\W+)+\\W(,|or).*$"
gsub(this_pattern, "\\2", this_txt, ignore.case = T)
EDIT:
Я все ближе с этим (который работает):
this_txt <- "Blah blah blah particular phrase this guy, this other guy, that guy, that other guy, or something else blah blah blah, blah blah. Blah blah blah, blah; and so blah."
this_pattern <- "^.*\\b(particular phrase)\\W+(.*)\\W+(,|or).*$"
gsub(this_pattern, "\\2", this_txt, ignore.case = T)
#[1] "this guy, this other guy, that guy, that other guy,"
Но как включить последний пункт "что-то еще"?