首页 > 解决方案 > 如何将列表与 Groovy 中的正则表达式匹配

问题描述

我有一个如下列表:

list1 = ["README.md", "test1.txt", "/desktop/openmpi.txt"]

我想从这个列表中过滤掉所有带有.md.txt扩展名的文件,并将结果作为布尔值返回给我。所以,如果这个列表包含任何.md.txt文件,则返回 true,否则返回 false。

我正在尝试匹配器类的实现,但它不起作用。我不确定如何一次性列出清单。

我的预期结果是:

  1. True:如果列表包含任何.md.txt文件。
  2. False: 如果列表不包含任何.md.txt文件。

标签: regexgroovy

解决方案


您可以使用any来查看列表中是否有与/(?i)\.(?:md|txt)$/正则表达式匹配的项目:

def list1= ["README.md", "test1.txt","/desktop/openmpi.txt"]
print(list1.any { it =~ /(?i)\.(?:md|txt)$/ } )  

退货true

在线查看Groovy 演示

(?i)\.(?:md|txt)$则表达式匹配

  • (?i)- 打开不区分大小写
  • \.- 一个点
  • (?:md|txt)md- 匹配或匹配的非捕获组txt
  • $- 字符串结束。

推荐阅读