如何在R中拆分带括号和数字的字母,字母?

时间:2017-09-01 19:49:46

标签: r regex

例如,我有一个字符串A1[5]B1C6

我想把它分成:

letter <- c(A, [5]B, C)     
number <- c(1, 1, 6)

1 个答案:

答案 0 :(得分:4)

使用str_extract_all包中的stringr,就数字而言,您可以查看数字\\d+之前没有[ (?<!\\[)的数字:

library(stringr)
num = unlist(str_extract_all(x,"(?<!\\[)\\d+"))
[1] "1" "1" "6"

如果是字母,可以在括号之间加上字母或数字,您可以这样做:

let = unlist(str_extract_all(x,"(\\[[[:alnum:]]+\\])*[a-zA-Z]+"))
[1] "A"    "[5]B" "C"