用R在字符串中提取匹配的部分

例如在aaaa12xxxx中提取12,在参考了stackoverflow后比较方便的大致有以下几种方法:

  1. 利用sub跟gsub
    sub(".*?([0-9]+).*", "\\1", "aaa12xx99",perl=TRUE) #其中\\1指括号中匹配的部分

    gsub("[^0-9]", "", "aaa12xxxx")

  2. regmatchs法

txt <- "aaa12xxx"
m <- regexpr("[0-9]+",txt)
regmatches(txt,m)
  1. 利用stringr中的str_extract函数 (stringr包的处理字符串功能很强大,推荐学习下)
library(stringr)
str_extract("aaa12xxx", "[0-9]+")
posted on 2016-04-29 10:46  Arkenstone  阅读(3076)  评论(0编辑  收藏  举报