在R数据框列中提取字符串的一部分

时间:2019-06-25 00:48:26

标签: r regex string dplyr

我试图在ID的一个列中扩展一个ID,该ID是字符串的一部分。我想编写一个表达式,该表达式将从IAB开始并以数字结尾提取图形。我该怎么办?

示例字符串:

[31] "{\"\"element\"\":\"\"IAB1_4\"\"}"  
[32] "{\"\"element\"\":\"\"IAB19_3\"\"}" 
[33] "{\"\"element\"\":\"\"IAB19_16\"\"}"
[34] "{\"\"element\"\":\"\"IAB9_11\"\"}" 
[35] "{\"\"element\"\":\"\"IAB19_5\"\"}" 
[36] "{\"\"element\"\":\"\"IAB18_1\"\"}"

我只需要提取以IAB开头并以数字结尾的部分。我该怎么办?

1 个答案:

答案 0 :(得分:3)

我们可以使用str_extract来匹配字符串“ IAB”后的一个或多个数字(\\d+),后跟一个下划线(_)和一个或多个数字({{1 }})

\\d+

或者使用library(stringr) str_extract(v1, 'IAB\\d+_\\d+') #[1] "IAB1_4" "IAB19_3" "IAB19_16" "IAB9_11" "IAB19_5" "IAB18_1" 中的regexpr

base R

数据

regmatches(v1, regexpr('IAB\\d+_\\d+', v1))
#[1] "IAB1_4"   "IAB19_3"  "IAB19_16" "IAB9_11"  "IAB19_5"  "IAB18_1"