2012-07-22 109 views
2

我有我的正則表達式過濾FTP服務器列表到文件/目錄名稱和大小的麻煩。這是我目前使用 (?m)^.{20}\\s*(\\d+).{14}(.*)$
所以正則表達式,以此來過濾此列表
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 


我會得到Tor瀏覽器,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 2011 FileZilla_3.5.0_win32-SETUP.EXE,1層14:07的酒吧,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); 
+0

就像一個魅力。謝謝 :) – user1494975 2012-07-22 19:10:29