我在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/