我不确定正则表达式是最好的方法,但它似乎非常适合。本质上,我目前正在使用 pdfminer 解析一些 pdf,缺点是这些 pdf 是导出的 powerpoint 幻灯片,这意味着所有动画都显示为相当长的字符串副本。理想情况下,我只想要这些字符串中的每一个的副本,而不是动画的每个阶段的副本。现在我正在使用的当前正则表达式模式是这样的:
re.sub(r"([\w^\w]{10,})\1{1,}", "\1", string)
但由于某种原因,这似乎并没有改变输入字符串。我觉得出于某种原因 python 无法识别捕获组,但我不确定如何解决该问题。任何想法表示赞赏。
例子:
I would like this
text to be
reduced
I would like this
text to be
reduced
输出:
I would like this
text to be
reduced
更新:为了通过抽水引理,我必须明确断言所有重复项都是相邻的。这是以前暗示的,但我现在明确表示以确保解决方案是可能的。