提取R中的最后一个数字及其尾随文本

时间:2019-05-04 13:58:39

标签: r regex

来自诸如

的字符串
s <- c("123 John 80 kg", "456 Paul 23 shifts  9 l", "Diane 155 cm")

我只希望提取最后一个数字和结尾的文本。我想要的结果看起来像这样:

"80 kg" "9 l" "155 cm"

4 个答案:

答案 0 :(得分:5)

尝试以下正则表达式,其内容类似于要求:

stringr::str_extract(s, "\\d+\\D*$")

答案 1 :(得分:4)

您可以使用正则表达式执行此操作:

sub(".*\\b(\\d+\\s+\\w+)", "\\1", s)
1] "80 kg"  "9 l"    "155 cm"

答案 2 :(得分:1)

使用stri_extract_last_regex

stringi::stri_extract_last_regex(s, "\\d+\\s+\\w+")
#[1] "80 kg"  "9 l"    "155 cm"

答案 3 :(得分:1)

或使用regmatches/regexpr中的base R

regmatches(s, regexpr("\\d+[^0-9]*$", s))
#[1] "80 kg"  "9 l"    "155 cm"