2012-07-22 107 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