如何使用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