Java Regex用于查找给定String是否包含与其出现次序相同的一组字符。

时间:2014-03-14 04:22:00

标签: regex string contains find-occurrences

我们需要Java Regex来查找给定的String是否包含一组字符,它们的出现顺序相同。

E.g。如果给定的字符串是"TYPEWRITER"

以下字符串应返回匹配项:

"YERT""TWRR"& "PEWRR"(按出现顺序逐个字符匹配),

但不是

"YERW""YERX"(这包含给定字符串中不存在的字符或与出现顺序不匹配的字符。)

这可以通过for循环中的字符匹配来完成,但是它会更耗时。这个或任何指针的正则表达式将受到高度赞赏。

1 个答案:

答案 0 :(得分:0)

首先,REGEX与它无关。正则表达式很强大,但实现这一目标并不是那么强大。

您要问的是Longest Common Subsequence(LCS)算法实现的一部分。对于您的情况,您需要稍微更改算法。我的意思是不是从两者中匹配字符串的一部分,而是要求将一个字符串作为整个子序列与较大字符串匹配。

LCS是一种动态算法,到目前为止,这是实现这一目标的最快方法。如果你看一下LCS Example,你会发现我在说什么。