如何使用groovy從這些行中獲取文件名。
groovy正則表達式
File file = new File(SOURCE_FILE_NAME).eachLine{line->
println line
}
越來越一行:
/usr/local/
/usr/local/testing.groovy
/usr/local/picture.jpg
預期輸出:
testing.groovy
picture.jpg
感謝
如何使用groovy從這些行中獲取文件名。
groovy正則表達式
File file = new File(SOURCE_FILE_NAME).eachLine{line->
println line
}
越來越一行:
/usr/local/
/usr/local/testing.groovy
/usr/local/picture.jpg
預期輸出:
testing.groovy
picture.jpg
感謝
File file = new File(SOURCE_FILE_NAME).eachLine{ path ->
println org.apache.commons.lang.StringUtils.substringAfterLast(path, "/")
}
println (new File(yourString).name)
這應該工作。
嗨juriy, 這裏我我我在做File file =新文件(SOURCE_FILE_NAME).eachLine {line-> println line } 我得到/usr/local/testing.groovy。現在我只需要獲取不包含路徑的文件名。謝謝 – srinath 2010-05-25 13:03:48
我不知道常規,但你正在尋找的正則表達式將[^/]+$
也(無外部DEPS)
["/usr/local", "/usr/local/testing.groovy",
"/usr/local/picture.jpg"].each { item->
def pat = item =~ /(\w*\/)*(.*)/
if(pat.matches()) {
println pat.group(2)
}
}
嗨,當使用你的路徑,得到錯誤java.lang.StringIndexOutOfBoundsException:字符串索引超出範圍:16. 我也有/ usr/local/.may與此顯示錯誤?謝謝 – srinath 2010-05-25 13:15:09
謝謝,不知道如何跳過與文件擴展名一致? 行還包含/ usr/local,/usr/local/test.org.groovy .... – srinath 2010-05-25 13:21:24
現在應該可以 – 2010-05-26 07:17:03