我正在尝试使用正则表达式在一串 DNA 中查找子串。这个子字符串有模棱两可的基数,比如ATCGR
,哪里R
可能是A
或G
。此外,脚本必须允许x
不匹配的数量。所以这是我的代码
import regex
s = 'ACTGCTGAGTCGT'
regex.findall(r"T[AG]T"+'{e<=1}', s, overlapped=True)
因此,如果有一个不匹配,我会期望 3 个子字符串AC**TGC**TGAGTCGT
andACTGC**TGA**GTCGT
和ACTGCTGAGT**CGT**
。预期的结果应该是这样的:
['TGC', 'TGA', 'AGT', 'CGT']
但输出是
['TGC', 'TGA']
即使使用 re.findall,代码也无法识别最后一个子字符串。另一方面,如果代码设置为允许 2 个与 {e<=2} 不匹配,则输出为
['TGC', 'TGA']
还有另一种方法来获取所有子字符串吗?