FTP LIST命令顯示當前工作目錄中所有文件和目錄的列表。問題是,根據服務器的不同,它會返回幾種不同的格式。有誰知道能夠解析最流行格式的.NET庫嗎?我很滿意「嘗試這個正則表達式,如果失敗了,請嘗試下一個正則表達式」的方法。解析來自FTP LIST命令的響應(語法變體)
4
A
回答
4
這是我在項目中使用的RegEx。似乎適用於基於Windows和Unix的FTP服務器。有人可能能夠清理它,但我通過在一個類上連接一堆屬性來構建它。所以對我來說這不是很殘酷。
^((?<DIR>([dD]{1}))|)(?<ATTRIBS>(.*))\s(?<SIZE>([0-9]{1,}))\s(?<DATE>((?<MONTHDAY>((?<MONTH>(Jan|Feb|Mar|Apr|May|Jun|Jul|Aug|Sep|Oct|Nov|Dec))\s(?<DAY>([0-9\s]{2}))))\s(\s(?<YEAR>([0-9]{4}))|(?<TIME>([0-9]{2}\:[0-9]{2})))))\s(?<NAME>([A-Za-z0-9\-\._\s]{1,}))$
8
下面是我一直使用的FileZilla中服務器的一個:
^(?<dir>[\-ld])(?<permission>([\-r][\-w][\-xs]){3})\s+(?<filecode>\d+)\s+(?<owner>\w+)\s+(?<group>\w+)\s+(?<size>\d+)\s+(?<timestamp>((?<month>\w{3})\s+(?<day>\d{2})\s+(?<hour>\d{1,2}):(?<minute>\d{2}))|((?<month>\w{3})\s+(?<day>\d{1,2})\s+(?<year>\d{4})))\s+(?<name>.+)$
http://chrishaas.wordpress.com/2009/06/10/regex-for-parsing-ftp-list-command/
1
^(?<dir>[\-ld])(?<permission>([\-r][\-w][\-xs]){3})\s+(?<filecode>\d+)\s+(?<owner>\w+)\s+(?<group>\w+)\s+(?<size>\d+)\s+(?<timestamp>((?<month>\w{3})\s+(?<day>\d{1,2})\s+(?<hour>\d{1,2}):(?<minute>\d{2}))|((?<month>\w{3})\s+(?<day>\d{1,2})\s+(?<year>\d{4})))\s+(?<name>.+)$
改變克里斯哈斯版本一小點點。已更改,以便日分組也可以由單個數字組成。 \ d {2} - > \ d {1,2}
感謝您使用原始版本。
0
^(?<dir>[\-ld])(?<permission>([\-r][\-w][\-xs]){3})\s+(?<filecode>\d+)\s+(?<owner>\S+)\s+(?<group>\S+)\s+(?<size>\d+)\s+(?<timestamp>((?<month>\w{3})\s+(?<day>\d{1,2})\s+(?<hour>\d{1,2}):(?<minute>\d{2}))|((?<month>\w{3})\s+(?<day>\d{1,2})\s+(?<year>\d{4})))\s+(?<name>.+)$
在我開的網站上,所有者以電子郵件地址格式顯示。我將所有者和組更改爲非空格字符而不是單詞字符。
這是擴展Yodiz的版本的克里斯哈斯的版本。非常感謝!
相關問題
- 1. C#類來解析WebRequestMethods.Ftp.ListDirectoryDetails FTP響應
- 2. FTP列表命令響應
- 3. 解析來自Facebook的JSONP響應的正確語法Open Graph
- 4. FTP org.apache.commons.net.MalformedServerReplyException:無法解析響應代碼
- 5. 從命令行重新解析響應
- 6. SIM900 AT命令響應解析
- 7. 解析來自WSDL的響應
- 8. 來自SOLR的解析響應
- 9. 解析來自curl POST的HTTP響應
- 10. 解析來自Tumblr的回調響應
- 11. 解析來自TCPSocket的響應
- 12. 解析來自xml的響應
- 13. 解析來自JSON的響應,ios?
- 14. 解析來自web.py的響應
- 15. 解析來自Servlet的JSON響應
- 16. 解析來自XMLHttpRequest的響應
- 17. 解析來自Wikipedia API的響應
- 18. 解析來自網絡的XML響應
- 19. 解析來自DispatchCommandResult的json響應
- 20. 如何解析來自JSON響應
- 21. awk命令來解析grep
- 22. Mysql命令來解析
- 23. 阻止libcurl發送FTP LIST命令
- 24. 無法解析來自WSDL生成的存根的響應
- 25. java.io.IOException:無法解析來自服務器的響應getFromLocationName()
- 26. 無法解析來自laravel的json響應
- 27. 無法解析來自Volley響應的整數
- 28. 無法解析來自服務器的響應 - 地理編碼
- 29. 無法解析來自Weather Underground API的JSON響應
- 30. Android:無法解析來自SOAP響應的空值(kSoap2)
非常感謝! – 2009-06-25 18:54:35
請注意,在我使用的服務器上,日期可以是1或2位數字,因此我必須將`(? \ d {2})`更改爲`(? \ d {1,2})` –
2011-02-01 12:47:13