我想用python匹配子字符串的所有出现。你知道吗
我找到了this,但我想匹配一个子串的发生数,该子串最多相隔一段距离(例如最大值为6)。如果我有绳子
AATCGTGCCGTGTGCCCCAAAATGAACGCGCCGCTGTG
如果两个TG之间最多相隔6个字符,我想得到TG的所有位置。
在上面的例子中,我想得到[5, 10, 12, 34, 36]
。我不想要中间的TG位置,因为它离任何一个“组”(10个字符)都太远了。你知道吗
我试过这个:
(?=TG(?:.+){1,6}?)
但它不起作用。你知道吗
编辑
我创建了regex,它返回所有我想要的位置,除了最后一个。你知道吗
(?=TG.{0,6}TG)
如果我使用上面的例子,返回的位置用|
标记
AATCG|TGCCG|TGTGCCCCAAAATGAACGCGCCGC|TGTG
但我也希望得到标有\
的位置
AATCG|TGCCG|TG\TGCCCCAAAATGAACGCGCCGC|TG\TG
我知道为什么它不起作用,因为它匹配所有TG,后面是0-6个随机字符和一个额外的TG,但我不知道应该添加什么使它起作用。你知道吗
如果使用正则表达式,我认为这应该有效。
位置必须从捕获组1的位置获得。你知道吗
注意-我认为你的立场是无效的。
(?:^.*?|(?<=TG).{0,4})(TG)
编辑:
你也可以这样做,开始一组新的TG
使用
\K
-无捕获组:(?:(?<=TG).{0,4}\KTG|.*?\KTG(?=.{0,4}TG))
格式化:
无分支重置-2个捕获组:
(?:(?<=TG).{0,4}(TG)|.*?(TG)(?=.{0,4}TG))
格式化:
带分支重置-1捕获组:
(?|(?<=TG).{0,4}(TG)|.*?(TG)(?=.{0,4}TG))
格式化:
您可以这样做,首先查找所有发生的事件,然后检查索引之间的距离:
我还没检查过,但应该可以。你知道吗
相关问题 更多 >
编程相关推荐