如何提取R中字符串的最后4位数字
我想提取给定字符串中的最后4位数字,但无法计算出来。最后4位数字可以是“XXXX”或“XXXX-”。最后,我有一个异质条目列表,包括单个年份(即2001年或2001年)、年份列表(即2001年、2004年-)和年份范围(即2001年至2010年),或条目末尾带或不带破折号(“-”)的组合 我意识到“$”是标识结束的标记,而“^”用于标识正则表达式中的开始。我能够很容易地提取前4个。下面是一个示例,说明我能做什么,以及最后4位的代码不起作用:如何提取R中字符串的最后4位数字,r,regex,stringr,R,Regex,Stringr,我想提取给定字符串中的最后4位数字,但无法计算出来。最后4位数字可以是“XXXX”或“XXXX-”。最后,我有一个异质条目列表,包括单个年份(即2001年或2001年)、年份列表(即2001年、2004年-)和年份范围(即2001年至2010年),或条目末尾带或不带破折号(“-”)的组合 我意识到“$”是标识结束的标记,而“^”用于标识正则表达式中的开始。我能够很容易地提取前4个。下面是一个示例,说明我能做什么,以及最后4位的代码不起作用: library(stringr) test <-
library(stringr)
test <- c("2009-", "2008-2015", "2001-, 2003-2010, 2012-")
str_extract_all(test, "^[[:digit:]]{4}") # Extracts FIRST 4
[[1]]
字符(0)
[[2]]
“2015年”
[[3]]
字符(0)
[[1]]
字符(0)
[[2]]
“2015年”
[[3]]
字符(0)
我希望的结果是:
[1] “2009”“2015”“2012”
我们可以尝试使用
sub
sub(".*(\\d+{4}).*$", "\\1", test)
#[1] "2009" "2015" "2012"
我们可以尝试使用
sub
sub(".*(\\d+{4}).*$", "\\1", test)
#[1] "2009" "2015" "2012"
sub(".*(\\d+{4}).*$", "\\1", test)
#[1] "2009" "2015" "2012"