【轉】windows下文件名命名規則的正則表達式


【轉自:http://blog.csdn.net/lsj19830812/article/details/4137003】

 

搜索了不少網站也沒找到合適的,還是自己學習了下正則表達式,寫了一個大家供參考

 

被保留的設備名不能被用來作為文件 名:CON, PRN, AUX, NUL, COM1, COM2, COM3, COM4, COM5, COM6, COM7, COM8, COM9, LPT1, LPT2, LPT3, LPT4, LPT5, LPT6, LPT7, LPT8, and LPT9。 這些保留設備名不能后跟一個擴展名
正則表達式為:
(?!((^(con)$)|^(con)/..*|(^(prn)$)|^(prn)/..*|(^(aux)$)|^(aux)/..*|(^(nul)$)|^(nul)/..*|(^(com)[1-9]$)|^(com)[1-9]/..*|(^(lpt)[1-9]$)|^(lpt)[1-9]/..*)|^/s+|.*/s$)(^[^/////:/*/?/"/</>/|]{1,255}$)

 

去掉了多余的系統文件名,不能以空格為開頭和結束,不能用//:*?"<>|作為文件名稱,文件名稱為1-255位


在Windows NT中CLOCK$也是一個保留設備名,沒用到就先不加了

 

對了,寫java程序用到的,'/'應該需要做兩次轉義了,其中雙引號前面的'/'需要寫成三個'/'

 

(?!((^(con)$)|^(con)//..*|(^(prn)$)|^(prn)//..*|(^(aux)$)|^(aux)//..*|(^(nul)$)|^(nul)//..*|(^(com)[1-9]$)|^(com)[1-9]//..*|(^(lpt)[1-9]$)|^(lpt)[1-9]//..*)|^//s+|.*//s$)(^[^/////////://*//?///"//<//>//|]{1,255}$)


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM