我在python中的re.finditer()方法遇到了一些麻烦。例如:

>>>sequence = 'atgaggagccccaagcttactcgatttaacgcccgcagcctcgccaaaccaccaaacacacca'
>>>[[m.start(),m.end()] for m in re.finditer(r'(?=gatttaacg)',sequence)]

out: [[22,22]]

如您所见,start()end()方法具有相同的值。我之前已经注意到这一点,并且最终使用了m.start()+len(query_sequence)而不是m.end(),但是我很困惑为什么会这样。

最佳答案

regex模块支持与finditer重叠:

import regex
sequence = 'acaca'
print [[m.start(), m.end()] for m in regex.finditer(r'(aca)', sequence, overlapped=1)]
[0, 3], [2, 5]]

关于python - re.finditer()为开始和结束方法返回相同的值,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34774126/

10-12 21:24