2010-05-25 4 views
0

groovy를 사용하여이 줄에서 파일 이름을 얻는 방법. 이 같은
groovy regexpression

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 

감사

답변

1
File file = new File(SOURCE_FILE_NAME).eachLine{ path -> 
    println org.apache.commons.lang.StringUtils.substringAfterLast(path, "/") 
} 
+0

안녕하세요, ur 경로를 사용하면 오류가 발생했습니다 java.lang.StringIndexOutOfBoundsException : 범위 밖으로 문자열 인덱스 : 16. 나는 또한/usr/local/.may이 오류와 함께 있었? 덕분에 – srinath

+0

덕분에, 어떻게 파일 이름 확장명과 라인을 건너 뛰려면? 줄에는/usr/local, /usr/local/test.org.groovy ....도 포함되어 있습니다. – srinath

+0

지금 확인해야합니다. –

0
println (new File(yourString).name) 

이 작동합니다.

+0

안녕 juriy, 내 나는 것 파일 파일 = 새 파일 (SOURCE_FILE_NAME) .eachLine {line-> println line} 나는 /usr/local/testing.groovy를 얻었습니다. 이제는 경로를 제외하고 파일 이름 만 가져와야합니다. 감사합니다 – srinath

1

내가 끝내 모르겠지만 당신이 찾고있는 정규식도 여기에

0

[^/]+$ (NO 외부 deps)

["/usr/local", "/usr/local/testing.groovy", 
    "/usr/local/picture.jpg"].each { item-> 
    def pat = item =~ /(\w*\/)*(.*)/ 
    if(pat.matches()) { 
     println pat.group(2) 
    } 
    }