0

我想匹配某些字符长的字符串部分(一般情况:它将是一个随机模式),并将在整个字符串的后面部分再次匹配。

对于给定的字符串示例:

GAC ATCG GTAACGCATGAATT GTCA GGGTACGCACTGACATG ATCG GTTACGAAA GTCA C

,

ATCG GTAACGCATGAATT GTCA GGGTACGCACTGACATG ATCG

GTCA GGGTACGCACTGACATG ATCG GTTACGAAA GTCA

将是最终结果。

任何人都可以帮忙吗?

4

1 回答 1

2

您可以将此模式用于至少 4 个核苷酸:

(?=(([ACTG]{4,}).*\2))

但你可以选择你想要的号码或固定号码,例如(?=(([ACTG]{5}).*\2))

Python 中的示例:

import re

print re.findall(r'(?=(([ACTG]{4,}).*\2))', 'GACATCGGTAACGCATGAATTGTCAGGGTACGCACTGACATGATCGGTTACGAAAGTCAC')

结果:

[('GACATCGGTAACGCATGAATTGTCAGGGTACGCACTGACAT',     'GACAT'),
 ('ACATCGGTAACGCATGAATTGTCAGGGTACGCACTGACAT',      'ACAT'),
 ('ATCGGTAACGCATGAATTGTCAGGGTACGCACTGACATGATCGGT', 'ATCGGT'),
 ('TCGGTAACGCATGAATTGTCAGGGTACGCACTGACATGATCGGT',  'TCGGT'),
 ('CGGTAACGCATGAATTGTCAGGGTACGCACTGACATGATCGGT',   'CGGT'),
 ('GGTAACGCATGAATTGTCAGGGTA',                      'GGTA'),
 ('ACGCATGAATTGTCAGGGTACGCA',                      'ACGCA'),
 ('CGCATGAATTGTCAGGGTACGCA',                       'CGCA'),
 ('CATGAATTGTCAGGGTACGCACTGACATGA',                'CATGA'),
 ('ATGAATTGTCAGGGTACGCACTGACATGA',                 'ATGA'),
 ('GTCAGGGTACGCACTGACATGATCGGTTACGAAAGTCA',        'GTCA'),
 ('TACGCACTGACATGATCGGTTACG',                      'TACG')]`
于 2013-10-25T14:59:18.993 回答