r - R中如何拆分字母、带括号的字母和数字?

标签 r regex

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

我想把它分成:

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

最佳答案

使用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" 

关于r - R中如何拆分字母、带括号的字母和数字?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46007126/

相关文章:

r - 写为 "conditional or"运算符的 "short-circuit or"(也称为 `||` )如何在 R 中工作?

r - 使 SQLite 的 generate_sequence 在 MS Windows 下的 R 的 sqldf 库中使用

php - 正向前瞻正则表达式令人困惑

javascript - 保持生成过程中 Node.js 结果的顺序

javascript - 按出现次数替换匹配的正则表达式组

php - REGEX 用于匹配 3 或 4 列数据,其中一列可能包含空格

r - 在 R 中转换日期时如何处理空白项

r - 使用 mutate_each 分配常量

r - 在R中使用 "density"函数查找新数据点的概率密度

mysql - 如何在 MySQL 中搜索没有定义字符的字符串?