当前位置: 首页 > 面试题库 >

Java-按正则表达式过滤列表条目

益泰平
2023-03-14
问题内容

我的代码如下所示:

List<String> filterList(List<String> list, String regex) {
  List<String> result = new ArrayList<String>();
  for (String entry : list) {
    if (entry.matches(regex)) {
      result.add(entry);
    }
  }
  return result;
}

它返回一个列表,其中仅包含与匹配的条目regex。我想知道是否有一个内置的功能,类似于:

List<String> filterList(List<String> list, String regex) {
  List<String> result = new ArrayList<String>();
  result.addAll(list, regex);
  return result;
}

问题答案:

除了Konstantin的回答:Java 8
通过Predicate对该Pattern类添加了支持,该类在内部asPredicate调用Matcher.find()

Pattern pattern = Pattern.compile("...");

List<String> matching = list.stream()
                            .filter(pattern.asPredicate())
                            .collect(Collectors.toList());

太棒了!



 类似资料:
  • 问题内容: 我在为ElasticSearch Regexp Filter正确表达正则表达式时遇到问题。我正在尝试匹配url字段中“ info-for / media”中的任何内容,例如http://mydomain.co.uk/info-for/media/press- release-1 。为了尝试正确使用我现在使用的正则表达式,但这最终将与用户的查询字符串一起使用。 POST到localhos

  • 问题内容: 我想在Java中构建一个正则表达式,该正则表达式将在FilenameFilter中传递以过滤目录中的文件。 问题是我无法理解正则表达式“思维模型”的问题:) 这是我用来选择要排除的文件的正则表达式 (((ABC | XYZ))+ \ w * Test.xml 我想做的是选择所有以Test.xml结尾但不以ABC或XYZ开头的文件。 您能否添加任何可以帮助我应对正则表达式的资源。 谢谢

  • 问题内容: 我正在尝试输入之间的内容,我的模式没有做正确的事,请帮忙。 下面是sudocode: 要求的输出: 之一 二 三 问题答案: 先行使用并在循环中使用,而不是: 看到它在线上工作:ideone 但是最好在这里使用split: 看到它在线上工作:ideone

  • 主要内容:正则表达式支持字符正则表达式(Regular Expression)又称正规表示法、常规表示法,在代码中常简写为 regex、regexp 或 RE,它是计算机科学的一个概念。 正则表达式是一个强大的字符串处理工具,可以对字符串进行查找、提取、分割、替换等操作,是一种可以用于模式匹配和替换的规范。一个正则表达式就是由普通的字符(如字符 a~z)以及特殊字符(元字符)组成的文字模式,它用以描述在查找文字主体时待匹配的

  • 问题内容: 我正在尝试过滤包含一堆URL的数组。我需要返回仅包含“联系人”一词的网址。 例如,有一个链接 这应该从过滤器中返回。 我尝试了这个: 当我知道有一个包含“联系人”一词的域时,它目前仅通过所有域发送回false。 问题答案: 首先,它等于哪里是退格字符(ASCII 08)…显然不是您想要的 所以,你会做的-这相当于 但是,之后是多余的 所以…到 在这里使用被滥用。以下是说明 下一个问题是

  • 本文向大家介绍MYSQL使用正则表达式过滤数据,包括了MYSQL使用正则表达式过滤数据的使用技巧和注意事项,需要的朋友参考一下 一、正则与LIKE的区别  Mysql的正则表达式仅仅使SQL语言的一个子集,可以匹配基本的字符、字符串。 例如:select * from wp_posts where post_name REGEXP'hello',可以检索出列post_name中所有包含hello的