r - 如何根据给定字符的一次或多次出现来拆分字符串?
问题描述
给定字符串:
string <- "AATTGGCGCTAG---AT-TTACG----"
如何根据一个或多个“-”的出现将其拆分为字符串。例如:
string1 <- "AATTGGCGCTAG"
string2 <- "---"
string3 <- "AT"
string4 <- "-"
string5 <- "TTACG"
string6 <- "----"
我努力了:
strsplit(string, "[-]+")
但是,这不会返回“-”的刺痛
解决方案
您可以将它们与
[^-]+|-+
请参阅正则表达式演示。它匹配
[^-]+
- 1+ 字符以外-
|
- 或者-+
- 1 个或多个-
字符。
在 R 中:
x <- "AATTGGCGCTAG---AT-TTACG----"
regmatches(x, gregexpr("[^-]+|-+", x))
或者
library(stringr)
x <- "AATTGGCGCTAG---AT-TTACG----"
str_extract_all(x, "[^-]+|-+")
输出
## => [[1]]
## [1] "AATTGGCGCTAG" "---" "AT" "-" "TTACG" "----"
推荐阅读
- java - Cassandra 和 Java Spring 分页中的 OrderBy 子句中断
- c# - AspNetCore 3.1 角色策略不适用于视图控制器
- c - 使用 C 在 Linux 中获取处理器类型
- sql - 如何优化使用游标的 PL/SQL 代码
- azure-devops - 通用包工件 - 在管道中使用包视图
- java - 嘿,我正在尝试在 Eclipse 中使用 GUI 设计器插件创建一个应用程序窗口,但它向我显示以下错误
- python - 在python中的嵌套dict中获取值
- c++ - 多态性和引用类成员 - 调用了错误的虚拟方法
- php - silverstripe 4.7 - manymanyextrafields - 如何使用它们?
- excel - 如何手动修改 worksheet_change 事件中正在编辑的单元格?