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

また、試してみてください

it.name.reverse().takeWhile{it != /_/}.reverse()
于 2013-08-28T20:33:34.357 に答える
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 に答える