寻找重复的子串

Jen*_*das 6 python regex repeat

有一些任意的字符串,如

hello hello hello I am I am I am your string string string string of strings
Run Code Online (Sandbox Code Playgroud)

我可以以某种方式找到由空格(EDIT)分隔的重复子字符串吗?在这种情况下,它将是'你好','我是'和'字符串'.

我一直想知道这个问题,但我仍然找不到任何真正的解决方案.我也阅读了一些关于这个主题的文章,并查看了后缀树,但这可以帮助我,即使我需要找到重复次数,例如重复次数高于2?

如果是这样,是否有一些python库,可以处理后缀树并对它们执行操作?

编辑:对不起,我不够清楚.所以只是为了说清楚 - 我正在寻找重复的子字符串,这意味着字符串中的序列,例如,正则表达式可以用+或{}通配符代替.所以,如果我必须从列出的字符串中制作正则表达式,我会这样做

(hello ){3}(I am ){3}your (string ){4}of strings 
Run Code Online (Sandbox Code Playgroud)

Ray*_*din 3

要查找重复两次或多次的两个或多个字符(每个字符均以空格分隔),请使用:

(.{2,}?)(?:\s+\1)+
Run Code Online (Sandbox Code Playgroud)

这是一个使用测试字符串的工作示例:http://bit.ly/17cKX62

编辑:通过添加 ? 使捕获组中的量词不情愿 匹配最短的可能匹配(即现在匹配“字符串”而不是“字符串字符串”)

编辑 2:添加了所需的空格分隔符以获得更清晰的结果