给定字符串:
string <- "AATTGGCGCTAG---AT-TTACG----"
如何根据一个或多个“-”的出现将其拆分为字符串。例如:
string1 <- "AATTGGCGCTAG"
string2 <- "---"
string3 <- "AT"
string4 <- "-"
string5 <- "TTACG"
string6 <- "----"
我试过:
strsplit(string, "[-]+")
但是,这不会返回“-”的字符串
最佳答案
您可以将它们与
[^-]+|-+
参见 regex demo .符合
[^-]+
--
以外的 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" "----"
关于r - 如何根据给定字符的一次或多次出现来拆分字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57285870/