如何使用正则表达式查找重复的短语?
how to use regex to find repeated phrases?
我正在编辑一些孩子作为学校作业制作的 epub。在这个文件中经常有多个 copy/paste 错误。所以我将整个东西导出到一个 xhtml 文件,并使用 SublimeText(如果这很重要),我需要查找 </p>
标记之前的最后 4 或 5 个单词是否已经出现在同一行中(或者更好,在相关的 <p>
标签之后)。
例如,这是我经常发现的:
<p>This is a whole paragraph that shouldn't contain any repetition. that shouldn't contain any repetition.</p>
这里和网上有一些关于查找重复的示例,但它们总是向前看,而我需要向后查找重复(或者至少在我看来是这样)。
我假设标签 <p>
不存在,因为在这种情况下语句不会以重复结束。
所以,如果文本是:
This is a whole paragraph that shouldn't contain any repetition. that shouldn't contain any repetition.
那么你可以使用这样的东西:
(.+)
更新:正如revo在他的评论中指出的那样,您可以利用积极的前瞻性来匹配模式
(.+)(?=<\/p>)
我正在编辑一些孩子作为学校作业制作的 epub。在这个文件中经常有多个 copy/paste 错误。所以我将整个东西导出到一个 xhtml 文件,并使用 SublimeText(如果这很重要),我需要查找 </p>
标记之前的最后 4 或 5 个单词是否已经出现在同一行中(或者更好,在相关的 <p>
标签之后)。
例如,这是我经常发现的:
<p>This is a whole paragraph that shouldn't contain any repetition. that shouldn't contain any repetition.</p>
这里和网上有一些关于查找重复的示例,但它们总是向前看,而我需要向后查找重复(或者至少在我看来是这样)。
我假设标签 <p>
不存在,因为在这种情况下语句不会以重复结束。
所以,如果文本是:
This is a whole paragraph that shouldn't contain any repetition. that shouldn't contain any repetition.
那么你可以使用这样的东西:
(.+)
更新:正如revo在他的评论中指出的那样,您可以利用积极的前瞻性来匹配模式
(.+)(?=<\/p>)