GA", "T>A", "G>A", "G>A", "A>T", "CT>C", "T-6ren">
gpt4 book ai didi

regex - 提取R中符号周围的字符

转载 作者:行者123 更新时间:2023-12-03 00:30:38 25 4
gpt4 key购买 nike

我想使用 R 和 sub 提取符号周围的字符。我尝试了很多正则表达式,但没有得到我想要的。

我的向量:

c("G>GA", "T>A", "G>A", "G>A", "A>T", "CT>C", "T>C", "T>C", "A>T", "T>C", "T>A", "A>G", "CCGCCGCGGCCGCCGTCTTCCACCAACAACATGGCGGA>C", "C>T", "T>A", "T>C", "T>G", "G>C", "T>G", "T>A", "G>A")

我只需要在 > 前后各有一个字符。

我最好的尝试是:

sub("(.*?)>", ">", aa, perl = TRUE)

最佳答案

您需要在正则表达式中使用捕获组:

vec <- c("G>GA", "T>A", "G>A", "G>A", "A>T", "CT>C", "T>C", "T>C", "A>T", "T>C", "T>A", "A>G", "CCGCCGCGGCCGCCGTCTTCCACCAACAACATGGCGGA>C", "C>T", "T>A", "T>C", "T>G", "G>C", "T>G", "T>A", "G>A")
> sub(".*(.)>(.).*","\\1\\2",vec)
[1] "GG" "TA" "GA" "GA" "AT" "TC" "TC" "TC" "AT" "TC" "TA" "AG" "AC" "CT" "TA"
[16] "TC" "TG" "GC" "TG" "TA" "GA"

换句话来说,正则表达式匹配任何内容零次或多次.*,然后捕获下一个字符(.),然后匹配大于号> 然后捕获下一个字符 (.),然后在 .* 末尾匹配任何内容零次或多次。将所有内容替换为两个捕获的字符 \\1\\2

关于regex - 提取R中符号周围的字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21095564/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com