繁体   English   中英

没有循环的正则表达式

[英]regular expression in without loop

如何不使用循环就重写以下表达式?

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

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

如果要避免使用循环,则需要使用某种形式的函数式编程。 Java 8将在这方面提供一些新功能,但是现在您可以使用Google Guava的Collections2#filter (或Iterables#filter )方法。 它使您可以指定条件(例如pattern.matcher(word).matches() )并选择集合中匹配的元素。

请注意,该对象将“通读”返回到原始集合,因此,如果需要保留过滤后的列表,则需要制作它们的副本(例如ArrayList(Collection) )。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM