[英]How to extract the last 4 digits of a string of characters in R
我想提取给定字符串中的最后 4 位数字,但无法弄清楚。 最后 4 位数字可以是“XXXX”或“XXXX-”。 最终,我有一个异构条目列表,其中包括单个年份(即 2001 年或 2001 年)、年份列表(即 2001 年、2004 年)、年份范围(即 2001-2010 年)或这些的组合条目末尾有或没有破折号(“-”)。
我意识到 '$' 是标识 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]]
字符(0)
[[2]]
“2015”
[[3]]
字符(0)
我想要的结果是:
[1] "2009" "2015" "2012"
我们可以试试sub
sub(".*(\\d+{4}).*$", "\\1", test)
#[1] "2009" "2015" "2012"
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.