python - 如何在正则表达式中获取重叠的文本匹配

时间:2015-07-27 17:31:57

标签: python regex overlapping-matches

我正在使用以下内容获取所有匹配,包括recommendationsother线程上的https://cran.r-project.org/web/packages/RODBCext/vignettes/Parameterized_SQL_queries.html重叠:

[(m.start(0), m.end(0)) for m in re.findall(t,s,overlapped = True)]

其中t是s的子集。但是,我收到以下错误:

Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: findall() got an unexpected keyword argument 'overlapped.'

我做错了什么/重叠了过时的旗帜/你会怎么做?非常感谢所有帮助。

1 个答案:

答案 0 :(得分:2)

正如Cunningham和Klaus所提到的,我所指的旗帜来自于另一个不同的包裹。

我找到了一个没有下载外部软件包的解决方案,但使用了前瞻:

[(m.start(0), m.end(0)) for m in re.finditer('(?='+t+')',s)]

当s =&#39; GATATATGCATATACTT&#39;并且t =&#39; ATAT&#39;,得到[(1,1),(3,3),(9,9)]。我不需要在比赛中返回文字,只需返回索引,因此如果匹配[&#39;&#39;&#39;&#39;&#39;,&#39;&#39; #39;&#39;。]