【发布时间】:2015-05-25 03:23:42
【问题描述】:
我有一个简单的函数,可以从字符串中产生至少 gapSize 连续 N 的所有延伸:
def get_gap_coordinates(sequence, gapSize=25):
gapPattern = "N{"+str(gapSize)+",}"
p = re.compile(gapPattern)
m = p.finditer(sequence)
for gap in m:
start,stop = gap.span()
yield(start,stop)
现在我想要一个完全相反的功能:匹配所有不是至少 gapSize N 的连续延伸的字符。这些拉伸可以出现在字符串中任何给定数字的位置(开头、中间和结尾)。
我已经查看了环视并尝试了
(?!N{25,}).*
但这并不能满足我的需要。 非常感谢任何帮助!
编辑: 例如:一个序列 NNNNNNACTGACGTNNNACTGACNNNNN 应该匹配 ACTGACGTNNNACTGAC 的 gapSize=5 和 ACTGACGT & ACTGAC 的 gapSize = 3。
【问题讨论】:
-
您能发布一个包含您要匹配的字符的示例短语吗?
-
请不要将问题的标签放入标题中。你有标签部分。
-
是的。这不是短语,而是 DNA 序列。例如:
NNNNNNNNNNNNNNNNNNNNNNNNNNNACTGTAGTGANNNNNACGTGTGTGTGTG我想匹配ACGTGTGTGTGTG和ACGTGTGTGTGTGTGTGTAC。但是,N 可能在任何地方 -
所以你基本上想匹配任何没有 N 的组?
-
@lfk:请将这些示例编辑到问题中。至于解决方案,你可以用
N{<gapSize>,}拆分输入。
标签: python regex regex-negation