所以我遇到了这个问题,我试图解决这个问题。 让我们说我有一个用户输入我们想要在字符串中找到的序列。但是他们被允许进入' X'它将被4个字符替换并搜索字符串。例如,如果用户输入AXXT,它将搜索字符串中的AGCT,AGGT等。所以这就是我试图做的:
y_re = y.replace('X', '[ACGT]')
然而,这并没有重叠,所以我输入了AXX,它只给了我AAC。有谁知道我怎么解决这个问题?
答案 0 :(得分:0)
与其他评论者所说的一样,请提供一个包含样本数据和预期输出的最小,完整和可验证的示例。
但我想我明白你要完成的事情。比如,您有序列ACATGT
,用户输入AXXT
,然后您想要找到重叠的子序列ACAT
和ATGT
。使用正则表达式执行此操作的方法是使用positive lookahead:(?=...)
。
import re
sequence = 'ACATGT'
user_input = 'AXXT'
pattern = user_input.replace('X', '[ACGT]')
pattern = '(?=({}))'.format(pattern )
m = re.findall(pattern, sequence)
print(m)