Я хотел бы извлечь ПОСЛЕДНИЕ 4 цифры в заданной строке, но не могу понять. ПОСЛЕДНИЕ 4 цифры могут быть «XXXX» или «XXXX-». В конечном итоге у меня есть список разнородных записей, которые включают отдельные годы (например, 2001 или 2001), списки лет (например, 2001, 2004), диапазон лет (например, 2001-2010) или их комбинацию. с тире («-») в конце записи или без него.
Я понимаю, что «$» - это токен для обозначения КОНЕЦ, а «^» используется для обозначения НАЧАЛА в регулярных выражениях. Я легко могу извлечь FIRST 4. Вот пример того, что я могу сделать, и код, который не работает для ПОСЛЕДНИХ 4 цифр:
library(stringr)
test <- c("2009-", "2008-2015", "2001-, 2003-2010, 2012-")
str_extract_all(test, "^[[:digit:]]{4}") # Extracts FIRST 4
[[1]]
[1] "2009" "2008" "2001"
str_extract_all(test, "[[:digit:]]{4}$") # Does not extract LAST 4
[[1]]
персонаж (0)
[[2]]
"2015"
[[3]]
персонаж (0)
str_extract_all(test, "\\d{4}$")
[[1]]
персонаж (0)
[[2]]
"2015"
[[3]]
персонаж (0)
Результат, которого я желаю:
[1] "2009" "2015" "2012"