正則表達式新手在這裏。我有一個匹配Windows路徑名和UNC路徑的正則表達式,以'\'結尾。Ruby正則表達式優化
工作的例子:
c:\windows\
c:\
\\server\share\
\\server\sh are\
無效:
c:\windows
\\server
\\server\share
\\server\ share \
然而,它按預期工作(至少我希望如此),但它是相當不可讀,不是很高性能的,所以任何提示優化非常感謝...
/\A(
([a-z]:\\(([a-zA-Z0-9äöüÄÖÜß_.$]+|[a-zA-Z0-9äöüÄÖÜß_.$]+[a-zA-Z0-9äöüÄÖÜß_.$\ ]*[a-zA-Z0-9äöüÄÖÜß_.$]+)\\)*)|
(\\\\(([a-zA-Z0-9äöüÄÖÜß_.$]+|[a-zA-Z0-9äöüÄÖÜß_.$]+[a-zA-Z0-9äöüÄÖÜß_.$\ ]*[a-zA-Z0-9äöüÄÖÜß_.$]+)\\)+(([a-zA-Z0-9äöüÄÖÜß_.$]+|
[a-zA-Z0-9äöüÄÖÜß_.$]+[a-zA-Z0-9äöüÄÖÜß_.$\ ]*[a-zA-Z0-9äöüÄÖÜß_.$]+)\\)+)
)\z/
你錯過了大量的有效文件名(有很多其他字符允許) - 是不是一個問題?而且你允許有許多無效的文件名(例如'con.txt')。你打算做什麼?檢查有效性? –
另外,哪個Ruby版本? –
對不起,由於缺乏這方面的信息,我使用的Ruby 1.9任何你是對的,我試圖檢查有效性... – tobmatth