Java 无循环正则表达式

Java 无循环正则表达式,java,regex,Java,Regex,如何在不使用循环的情况下重写以下表达式 Pattern pattern = Pattern.compile(filterRegEx); Matcher regexMatcher = pattern.matcher("(.*)"); for (String word : words) { if (pattern.matcher(word).matches()) { foundList.add(word); } } 如果希望避免使用循环,则需要使用某种形式的函数式

如何在不使用循环的情况下重写以下表达式

Pattern pattern = Pattern.compile(filterRegEx);
Matcher regexMatcher = pattern.matcher("(.*)");

for (String word : words) {
    if (pattern.matcher(word).matches()) {
        foundList.add(word);
    }
}

如果希望避免使用循环,则需要使用某种形式的函数式编程。Java8在这方面会有一些新特性,但现在你可以使用Google Guava的(或
Iterables#filter
)方法;它允许您指定一个条件(例如
pattern.matcher(word).matches()
)并选择集合中匹配的元素


请注意,该对象返回了原始集合的“通读”,因此如果需要保留筛选列表,则需要复制它们(例如使用)。

是否确实要执行您现在正在执行的操作
matcher()
方法获取要与正则表达式匹配的字符串。您正在传递一个正则表达式模式。可以用文字解释你到底想要什么。你是打算在什么地方使用
regexMatcher
,还是不相关?你确定那个匹配器吗?似乎匹配整个字符串。塔尔正则表达式用于什么?它是否匹配整个单词?如果您试图匹配
()
中的单词,请使用
\(.*)
对不起(.*),我只是在练习。我在某个地方读到,我可以使用pattern类执行匹配,而不必使用for循环(它可以为我执行),但我找不到任何示例。因此我提出了这个问题。上面的代码确实有效,但只是想找到做同样事情的其他方法