Вы можете попробовать это:
stringi::stri_extract_last(st, regex='(?<=Realm - )(\\w+)')
stri_extract_last
извлечет последнее совпадение для регулярного выражения, используя взгляд за утверждениями, мы можем собрать слова, а затем оглянуться вокруг (используя положительный взгляд в этом случае ), в этом случае у вас есть слова Afrotropical и Neotropical , за которыми следует Realm - .
В случае, если вы хотите извлечь обе строки для последнего матча вы можете попробовать ниже (stri_extract_all
):
stringi::stri_extract_all(st, regex='(?<=Realm - )(\\w+)')
Вход :
st <- c("...Attributes \r\n Realm - Afrotropical \r\n IUCN Ecosystem -- Terrestrial biome...",
"...Attributes \r\n Realm - Afrotropical \r\n Realm - Neotropical \r\n . IUCN Ecosystem -- Terrestrial biome..."
)
Выход :
> stringi::stri_extract_last(st, regex='(?<=Realm - )(\\w+)')
[1] "Afrotropical" "Neotropical"
> stringi::stri_extract_all(st, regex='(?<=Realm - )(\\w+)')
[[1]]
[1] "Afrotropical"
[[2]]
[1] "Afrotropical" "Neotropical"