0

私はJavaでFTPクライアントハンドラーを書いていますが、Apacheのような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

必要なのはファイル/ディレクトリの名前とサイズだけです。

列間の間隔の違いとファイル名の間隔を考慮して、リストを名前とサイズに縮小する方法を提案してください。

よろしくお願いします:)

4

2 に答える 2

0

データを取得したいだけなので、次の正規表現を使用できます。

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

そして、を作成し、入力文字列に対応するものをPattern取得して、Matcher一致の抽出を開始します。サイズはで取得できgroup(1)、ファイル名はで取得できますgroup(2)

于 2012-07-02T02:17:54.287 に答える
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));
    }

ディレクトリも表示したい場合は、パターンの最初の「-」を削除してください。パフォーマンスが問題になる場合は、。*?を回避するより選択的なパターンを検討する必要があります。最初に。

于 2012-07-02T02:48:52.937 に答える