2016-10-10 720 views
0

我想提取給定字符串中的最後4位數字,但無法弄清楚。最後4位數字可以是「XXXX」或「XXXX-」。最終,我有一份包括單年(即2001年或2001年),年份列表(即2001年,2004年),年份範圍(即2001年至2010年)或這些組合在結尾處有或沒有破折號(「 - 」)。如何提取R中字符串的最後4位數字

我意識到'$'是標識END的標記,'^'用於標識正則表達式中的START。我能夠輕鬆提取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]]

character(0)

[[2]]

「2015」

[[3]]

字符(0)

我希望的結果是:

[1]「2009」「2015」「2012」

回答

2

我們可以sub

sub(".*(\\d+{4}).*$", "\\1", test) 
#[1] "2009" "2015" "2012" 
+1

優秀試試吧!完美的作品。 –

相關問題