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. FTP列表命令響應
- 2. 解析來自Facebook的JSONP響應的正確語法Open Graph
- 3. SIM900 AT命令響應解析
- 4. 解析來自web.py的響應
- 5. 解析來自Servlet的JSON響應
- 6. 解析來自XMLHttpRequest的響應
- 7. 解析來自JSON的響應,ios?
- 8. 解析來自WSDL的響應
- 9. Mysql命令來解析
- 10. 阻止libcurl發送FTP LIST命令
- 11. 無法解析來自地理編碼網站的jsonp響應
- 12. 無法解析來自Volley響應的整數
- 13. 無法解析來自laravel的json響應
- 14. 無法解析來自jQuery Ajax的JSON響應調用
- 15. Android:無法解析來自SOAP響應的空值(kSoap2)
- 16. 如何變換語法爲自上而下解析的語法
- 17. 如何解析Arduino中AT命令的響應?
- 18. 無法解析JSON響應
- 19. 無法解析響應
- 20. 來自命令行的sqlplus語句
- 21. 如何解析來自c#的命令行輸出?
- 22. 解析來自用戶輸入的命令
- 23. Python的解析來自命令行參數
- 24. 解析命令行參數和響應文件
- 25. 解析響應
- 26. 解析響應
- 27. 如何使用來自pysnmp V3命令響應者的回調?
- 28. 接收到來自AT命令的不同響應
- 29. 解析來自Swift api的Json響應時的異常
- 30. 解析來自json中的url的響應
非常感謝! – 2009-06-25 18:54:35
請注意,在我使用的服務器上,日期可以是1或2位數字,因此我必須將`(? \ d {2})`更改爲`(? \ d {1,2})` –
2011-02-01 12:47:13