0

我需要提取文件夹名称的一部分。我对每个文件夹都有这个代码

import groovy.io.FileType
def dirs = []
def currentDir = new File('c:\\CompilationStaging')
currentDir.eachFile FileType.DIRECTORIES, {
    dirs.add( 'C:\\CompilationStaging\\'+it.name)
    println( it.name)
}
dirs.sort() 
def list = dirs.reverse()

这让我得到一个特定格式的文件夹列表:

  • 2013.28.08.14.08.16_Debug_Value1

  • 2013.28.08.14.08.16_Release_Value2

  • 2013.28.08.14.18.36_Debug_Value3

我只需要获取每个it.name名称的最后一部分(value1,value2,value3)谢谢....

4

3 回答 3

2

尝试

println( it.name.split( '_' )[ -1 ].toLowerCase() )
于 2013-08-28T20:18:58.937 回答
2

如果最后一部分总是在 '_' 字符之后,则将[]运算符与列表一起使用(这是getAt()方法):

it.name[it.name.lastIndexOf('_')+1..-1]

或使用正则表达式

def regex = /.*(Value\d+$)/
def matcher = (it.name =~ regex)
println matcher[0][1]
于 2013-08-28T20:19:20.527 回答
2

也试试

it.name.reverse().takeWhile{it != /_/}.reverse()
于 2013-08-28T20:33:34.357 回答