Jel*_*ina 0 python regex python-2.7
我有一个长度相等的子串列表,我想在大字符串中找到所有这些子串的位置。然而棘手的部分是我还应该找到不匹配数量有限的子字符串(也给出了不匹配的数量)。我以为我可以用正则表达式做到这一点,但我找不到方法。UPD:我使用的是 Python 2.7。
示例:输入字符串:s = 'ATGTCGATCGATGCTAGCTATAGATAAAA',输入子字符串为s0 = 'ATG',允许的不匹配数为 n = 1。我想要的是返回一个可迭代的,比如说一个列表,位置:[0,7,19,23,6],对应于“ATG”(两次),“ATA”的位置'(两次),'ATC' 相应地,因为其他不匹配的 3 聚体都不会出现在字符串中。
新regex模块支持模糊匹配。例如
(?:foo){s<=2}
Run Code Online (Sandbox Code Playgroud)
匹配“foo”,允许 2 次替换。
另请注意文档中的此评论:
默认情况下,模糊匹配搜索满足给定约束的第一个匹配项。ENHANCEMATCH 标志将导致它尝试改进它找到的匹配的拟合(即减少错误的数量)。
BESTMATCH 标志将使其搜索最佳匹配。
例子:
>>> regex.findall(r'(?:foo){s<=2}', 'xxfoo')
['xfo']
>>> regex.findall(r'(?:foo){s<=2}', 'xxfoo', regex.BESTMATCH)
['foo']
Run Code Online (Sandbox Code Playgroud)