查找与正则表达式模式匹配的文件

时间:2015-07-27 12:38:46

标签: regex file groovy

我需要找到与grails中特定模式匹配的所有文件。

文件将标记为“runid.started.xml”。所以我希望找到所有使用以下正则表达式:

/(? <=\.)(.*?)(?=\.)/

我可以找到所有文件,但我需要将其设置为匹配模式的文件。我找到了一些例子,但似乎都没有。这是最新的:

New File (c:\\mydirectory\\test ).eachFileRecurse (Files)
{
  if (it.name ==~ /(? <=\.)(.*?)(?=\.)/){
    println it
   {
      println "nope"
    }

这会返回“nope”......我对grails很新,所以我不确定我哪里出错了。我的正则表达式在一个在线正则表达式测试中似乎是正确的,但我可能是错的。

1 个答案:

答案 0 :(得分:1)

==~匹配运算符。意味着有问题的字符串必须完全匹配。并(? <=\.)(.*?)(?=\.) doesn't match“runid.started.xml”。所以你有两个选择:

  1. 在if语句中使用搜索运算符:=~
  2. 写一个exactly matches所有文件名的正则表达式:\w*\.(\w+)\.\w*