regex 如何在Groovy中根据正则表达式匹配列表

jaxagkaj  于 2023-02-17  发布在  其他
关注(0)|答案(1)|浏览(125)

我有一个名单如下:

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

我想从这个列表中过滤掉所有扩展名为.md.txt的文件,并将结果返回给我。因此,如果这个列表包含任何.md.txt文件,则返回true,否则返回false。
我尝试了matcher类的实现,但是没有成功。我不确定我怎么能一次性地用列表做到这一点。
我的预期结果是:

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

jgovgodb1#

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

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

返回true
请参见Groovy demo online
(?i)\.(?:md|txt)$正则表达式匹配

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

相关问题