匹配特定字母旁边的 hyphen/dash
Match hyphen/dash next to a Certain Letters
输入文件:
>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-
我想用 N
替换 TAGTA-
、C-ACGC
和 -GCAGTT-CA-
中的连字符,但保留 headers(从 >
) 开始。我正在寻找一个正则表达式,它将匹配 A
、C
、G
或 T
旁边的连字符,但排除以 [=17= 开头的匹配项] 字符.
期望的输出
>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])-
所以这并不能完全找到连字符,但它会找到任何组合 A
、C
、G
、T
,包括 [=15] =].这是 regex
:
(?=[ACGT-]+$)(?=(?:[^-]*[-])+).*
您可能必须 split
关闭 string
的匹配项并将其保存到一个临时变量,然后在其中执行 .replace('-', 'N');
并将其连接回末尾你的数据字符串。希望这对您有所帮助!
输入文件:
>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-
我想用 N
替换 TAGTA-
、C-ACGC
和 -GCAGTT-CA-
中的连字符,但保留 headers(从 >
) 开始。我正在寻找一个正则表达式,它将匹配 A
、C
、G
或 T
旁边的连字符,但排除以 [=17= 开头的匹配项] 字符.
期望的输出
>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])-
所以这并不能完全找到连字符,但它会找到任何组合 A
、C
、G
、T
,包括 [=15] =].这是 regex
:
(?=[ACGT-]+$)(?=(?:[^-]*[-])+).*
您可能必须 split
关闭 string
的匹配项并将其保存到一个临时变量,然后在其中执行 .replace('-', 'N');
并将其连接回末尾你的数据字符串。希望这对您有所帮助!