Java 将正则表达式与数组匹配

Java 将正则表达式与数组匹配,java,regex,arrays,Java,Regex,Arrays,我们都知道如何使用正则表达式来查找字符串中的内容。然而,正则表达式至少在数学上不限于实际的Strings和char[]s;可以使用正则表达式匹配int[]中的子序列。然而,我似乎找不到任何关于使用带有非字符strinr的正则表达式的东西。还有人知道这样的事吗 这主要是因为在类似这样的网站上出现了大量“数组子序列”类型的问题。通常,我会将数组转换为字符串,以便在其上使用正则表达式,例如,我的解决方案是 (我喜欢打高尔夫球) 我考虑过做类似的事情 return new String(nums,0,n

我们都知道如何使用正则表达式来查找字符串中的内容。然而,正则表达式至少在数学上不限于实际的
String
s和
char[]
s;可以使用正则表达式匹配
int[]
中的子序列。然而,我似乎找不到任何关于使用带有非字符strinr的正则表达式的东西。还有人知道这样的事吗

这主要是因为在类似这样的网站上出现了大量“数组子序列”类型的问题。通常,我会将数组转换为字符串,以便在其上使用正则表达式,例如,我的解决方案是

(我喜欢打高尔夫球)

我考虑过做类似的事情

return new String(nums,0,nums.length).split("(.)\\1\\1").length == 1;
(这确实有效),但不能使用文本值(例如,编译器将拒绝任何包含
\u0000
-
\u001F
的程序,除了一对),此外还有其他问题


有人知道直接对整数数组进行模式匹配的方法吗?(使用某种正则表达式,甚至使用更严格的语言?

Matcher类将采用字符序列作为输入。如果整数的值都小于等于两个字节,那么可以将int数组包装为CharSequence。只需屏蔽charAt()方法中的高位


否则,您将不得不深入研究Pattern和Matcher的源代码。这不是一件小事。

那么转换为字符串并使用正则表达式有什么问题呢?这不解决问题吗?我能想到的其他方法是使用嵌套循环。转换为字符串效率低下,而且可能很棘手(例如,字符串数组可能在某些字符串中包含分隔符)。前面也有类似的讨论:
return new String(nums,0,nums.length).split("(.)\\1\\1").length == 1;