2

FTP サーバーリストをファイル/ディレクトリ名とサイズにフィルターするための正規表現に問題があります。これは私が現在使用している正規表現です。 (?m)^.{20}\\s*(\\d+).{14}(.*)$
したがって、これを使用してこのリストをフィルタリングします

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


Tor Browser, 0 と setup.exe, 1538814 を取得します。
これは実際に必要なものですが、この形式のリストにあります

 -r-xr-xr-x  1 0  1001     4521014 May 23  2011 FileZilla_3.5.0_win32-setup.exenull
 dr-xr-xr-x  4 0  1001  1024 Mar  2 14:07 pubnull

私は次のようなものを取得します: ay 23 2011 FileZilla_3.5.0_win32-setup.exe, 1 and 14:07 pub ,1.
この正規表現を両方のタイプで機能させる方法はありますか?
ありがとうございました

4

1 に答える 1

3

私は以下を使用します:

Pattern regex = Pattern.compile(
    "(\\d+)        # File size           \n" +
    "\\s+          # Whitespace          \n" +
    "\\w{3}        # Month (3 letters)   \n" +
    "\\s+          # Whitespace          \n" +
    "\\d{1,2}      # Day (1 or 2 digits) \n" +
    "\\s+          # Whitespace          \n" +
    "[\\d:]{4,5}   # Time or year        \n" +
    "\\s+          # Whitespace          \n" +
    "(.*)          # Filename            \n" +
    "$             # End of line", 
    Pattern.MULTILINE | Pattern.COMMENTS);
于 2012-07-22T18:53:01.183 に答える