2012-07-02 3 views
0

Java에서 FTP 클라이언트 핸들러를 작성 중이므로 Apache와 같은 FTP 라이브러리를 사용할 수 없습니다.Java : FTP 서버 목록의 정규식?

drw-rw-rw- 1 ftp ftp    0 Mar 17 06:10 Tor Browser 
-rw-rw-rw- 1 ftp ftp   1538814 Jun 26 00:23 setup.exe 
-rw-rw-rw- 1 ftp ftp   142570 May 24 05:28 satellite A665-S6086.pdf 

내가 필요한 모든 파일/디렉토리의 이름과 크기이지만 :

내 문제는 내가이 형식으로 서버에서 목록을받을 수있다.

파일 이름의 열과 공백 사이의 간격 차이를 염두에두고 이름과 크기로 목록을 축소하는 방법을 제안 해주십시오. 입력에 해당하는 Matcher

"(?m)^.{20}\\s*(\\d+).{14}(.*)$" 

그리고 Pattern를 구성하고, 구하십시오

방금 ​​데이터를 잡고 싶어하기 때문에,이 정규식을 사용할 수 있습니다

+0

편집 내용을 모두 취소 하시겠습니까? 나는 그것을 더 읽기 쉽게하려고 노력했다. – nhahtdh

+0

죄송합니다. 실제로 게시물을 게시 한 후 실제로 게시물을 편집하여 충돌이있을 수 있지만 편집 내용을 볼 수 있습니다. 감사합니다. – user1494975

답변

0

사전 : 여러분 모두 감사합니다 문자열을 입력하고 일치 항목을 추출합니다. 크기는 group(1)에서 얻을 수 있으며 파일 이름은 group(2)에서 얻을 수 있습니다.

+0

감사합니다. :) 빠른 응답과 정확한 답변을 위해 :) – user1494975

0

사용

Pattern sizeAndNamePattern = Pattern.compile(
      "^-.*?(\\d+) \\w{3} \\d{2} \\d{2}:\\d{2} (.*)$", Pattern.MULTILINE); 

    for (Matcher matcher = sizeAndNamePattern.matcher(dirListing); matcher.find();) { 
     System.out.println(matcher.group(1) + " " + matcher.group(2)); 
    } 

당신은 또한 첫번째를 제거보다는 디렉토리를보고 싶다면

"-"패턴에. 성능이 문제라면. *를 사용하지 않는보다 선별적인 패턴을 고려해야합니다. 처음에는

+0

감사합니다. – user1494975