我们需要Java Regex来查找给定的String是否包含一组字符,它们的出现顺序相同。
E.g。如果给定的字符串是"TYPEWRITER"
,
以下字符串应返回匹配项:
"YERT"
,"TWRR"
& "PEWRR"
(按出现顺序逐个字符匹配),
但不是
"YERW"
或"YERX"
(这包含给定字符串中不存在的字符或与出现顺序不匹配的字符。)
这可以通过for循环中的字符匹配来完成,但是它会更耗时。这个或任何指针的正则表达式将受到高度赞赏。
答案 0 :(得分:0)
首先,REGEX与它无关。正则表达式很强大,但实现这一目标并不是那么强大。
您要问的是Longest Common Subsequence(LCS)算法实现的一部分。对于您的情况,您需要稍微更改算法。我的意思是不是从两者中匹配字符串的一部分,而是要求将一个字符串作为整个子序列与较大字符串匹配。
LCS是一种动态算法,到目前为止,这是实现这一目标的最快方法。如果你看一下LCS Example,你会发现我在说什么。