我们需要 Java 正则表达式来查找给定的字符串是否包含一组按其出现顺序相同的字符。
例如,如果给定的字符串是"TYPEWRITER"
,
以下字符串应返回匹配项:
"YERT"
, "TWRR"
& "PEWRR"
(按出现顺序逐个字符匹配),
但不是
"YERW"
或"YERX"
(这包含给定字符串中不存在的字符或与出现顺序不匹配的字符)。
这可以通过在 for 循环中逐个字符匹配来完成,但这会更耗时。对此或任何指针的正则表达式将不胜感激。
我们需要 Java 正则表达式来查找给定的字符串是否包含一组按其出现顺序相同的字符。
例如,如果给定的字符串是"TYPEWRITER"
,
以下字符串应返回匹配项:
"YERT"
, "TWRR"
& "PEWRR"
(按出现顺序逐个字符匹配),
但不是
"YERW"
或"YERX"
(这包含给定字符串中不存在的字符或与出现顺序不匹配的字符)。
这可以通过在 for 循环中逐个字符匹配来完成,但这会更耗时。对此或任何指针的正则表达式将不胜感激。
首先 REGEX 与它无关。正则表达式很强大,但没有那么强大来实现这一点。
您要问的是最长公共子序列(LCS)算法实现的一部分。对于您的情况,您需要稍微更改算法。我的意思是,您需要将一个字符串作为较大字符串的整个子序列进行匹配,而不是从两者中匹配部分字符串。
LCS 是一种动态算法,到目前为止,这是实现这一目标的最快方法。如果您查看此处的LCS 示例,您会发现我在说什么。