r - 如何根据给定字符的一次或多次出现来拆分字符串?

标签 r regex string

给定字符串:

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/

相关文章:

r - 如何删除某些句子后面的文字?

R 因子 - 时间序列转换不起作用

r - 如何让 x 轴标签显示在 R Barplot 中?

r - 解压字符串并获取字符串向量

java - 匹配转义字符(引号)的正则表达式

excel - 在 Excel 中翻译数字字符串

python - 使用正则表达式分隔符拆分字符串,除非分隔符被转义

python - 如何在python中使用正则表达式搜索一个词然后替换它后面的文本?

c - 在 C 中打印数组的值

javascript - 如何检查 JavaScript 中变量中是否存在区分大小写和特殊字符的特定字符串?