匹配连字符/破折号旁边某些字母
输入文件:匹配连字符/破折号旁边某些字母
>AMSF107-09|Perciformes|COI-5P|GU661092
TAGTA-
>AMSF114-09|Perciformes|COI-5P|GU661101
C-ACGC
>ANGBF3683-12|Haemulon_sp._B_JJT-2012|COI-5P|JQ741244
-GCAGTT-CA-
我想替换连字符TAGTA-
,C-ACGC
,并-GCAGTT-CA-
与N
的,但离开头(与>
开始的行) 完整。我正在寻找一个匹配A
,C
,G
或T
旁边的连字符的正则表达式,但排除以>
字符开头的匹配项。
所需的输出
>AMSF107-09|Perciformes|COI-5P|GU661092
TAGTAN
>AMSF114-09|Perciformes|COI-5P|GU661101
CNACGC
>ANGBF3683-12|Haemulon_sp._B_JJT-2012|COI-5P|JQ741244
NGCAGTTNCAN
编辑: 我知道正则表达式中最基础的。到目前为止,我已经尝试(ACGT)?\-(ACGT)?
,但匹配每个连字符。
这由A
,C
,G
或T
之前连字符相匹配:(?<=[ACGT])-
的基本知识,但它也与第3个标题中的T匹配。 '> ANGBF3683-12 | Haemulon_sp._B_JJT-2012 | COI-5P | JQ741244' – cooldood3490
你在写什么语言?您可以添加一个简单的方法来过滤行 – gribvirus74
我正在使用查找和替换功能编辑Sublime中的文本文件。我在查找部分放置正则表达式,在替换部分放置'N'。 – cooldood3490
所以这并不完全找到刚才的连字符,但它会找到任何组合A
,C
,G
,T
包括-
。这里是regex
:
(?=[ACGT-]+$)(?=(?:[^-]*[-])+).*
您可能需要split
这场比赛string
断并将其保存到一个临时变量,你那么做了.replace('-', 'N');
并连接回到您的数据字符串的结尾。希望这可以帮助!
等等,这不太对。我以为我测试过它,但它仍然有一个错误。我会看看我是否可以修复它,但它接近!问题是,只要你的任何给定字符已经存在于字符串中,你就可以放入任何字符或数字。我会继续努力工作。 –
@ cooldood3490不小心粘贴了错误的'regex',它现在被更新了。 –
我感谢您的帮助 – cooldood3490
对,你到目前为止尝试过什么? – Utkanos
我只知道关闭正则表达式 – cooldood3490