Вы можете извлечь фрагменты ближайших цифр после mystr
, используя
x <- "This is mystring hola 8 and this yourstring hola 9 and again mystrings op 12."
regmatches(x, gregexpr("mystr.*?\\K\\d+", x, perl=TRUE))
# => [[1]]
# [1] "8" "12"
См. Демоверсию R
Это регулярное выражение PCRE будет соответствовать
mystr
- mystr
.*?
- любые 0+ символов, кроме символов разрыва строки, должны быть как можно меньше
\\K
- пропустит соответствующий текст
\\d+
- 1+ цифр.
См. Демонстрационный пример PCRE .
Если вы хотите использовать stringr
, вы можете использовать str_match_all
:
> library(stringr)
> x <- "This is mystring hola 8 and this yourstring hola 9 and again mystrings op 12."
> str_match_all(x, "mystr.*?(\\d+)")[[1]][,2]
[1] "8" "12"
где цифры занесены в группу 1.