正则表达式新手在这里。我有一个匹配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