我正在使用我的正则表达式将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和14:07 pub,1。
有没有办法让这个正则表达式适用于这两种类型?
谢谢
答案 0 :(得分: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);