【发布时间】:2016-10-05 05:23:20
【问题描述】:
我希望通用算法找出一个字符串是否包含重复模式,并且字符串的任何部分都没有被排除在重复模式之外。
例如,看看这些示例字符串:
abcabcabc - true
abcabcabcx - false
cucumbercucumber - true
cucumber - false
abaaabaaabaa - true
我查看了this answer,它解决了少数情况下的问题,但在cucumber 示例的情况下会失败。我需要在所有情况下都有效的东西。
【问题讨论】:
-
确实很有趣。到目前为止,我了解到的是,对于每个
regex,都有一个finite automata。第一个问题应该是Is there a finite autonata for dynamic pattern recognition?。如果是这样,那么您可以将其转换为正则表达式,反之亦然。 -
如果支持反向引用,可以通过正则表达式:
^(.+)\1+$ -
解释为什么这是正确的例子:abaaabaaabaa 你认为重复模式是什么?
-
@IraBaxter
abaa重复。 -
@SebastianProske:啊。是的。好。这就是为什么您需要算法而不是人类来执行此操作的原因。或者至少为什么你想要一个算法而不是我做它:-}
标签: regex language-agnostic pattern-matching