输入文件:
>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
中的连字符,但保留标题(以{开头的行) {1}})完好无损。我正在寻找与>
,A
,C
或G
旁边的连字符匹配的正则表达式,但排除以{{{}}开头的匹配项1}}角色。
期望的输出
T
编辑:
我知道正则表达式的基础知识。到目前为止,我已经尝试了>
但是匹配每个连字符。
答案 0 :(得分:1)
匹配前缀为A
,C
,G
或T
的连字符:(?<=[ACGT])-
答案 1 :(得分:1)
所以这并不能完全找到连字符,但它会找到包含A
C
,G
,T
,-
的任意组合。这是regex
:
(?=[ACGT-]+$)(?=(?:[^-]*[-])+).*
您可能必须split
关闭此string
的匹配项并将其保存到临时变量中,然后执行.replace('-', 'N');
并将其重新连接到数据末尾串。希望这有帮助!