【发布时间】:2018-09-25 19:31:18
【问题描述】:
问题是,我希望能够从任意字符串中提取 Windows 文件路径,并且它可能不容易用正则表达式解决。我能来的最接近的(我已经尝试了很多其他的)是使用以下正则表达式:
[a-zA-Z]:\\([a-zA-Z0-9() ]*\\)*\w*.*\w*
它选择文件的开头,旨在查看字符串的模式(在初始驱动器号之后),后跟反斜杠并以文件名、可选点和可选扩展名结尾。
困难在于接下来会发生什么。由于最大路径长度为 260 个字符,因此我只需要计算开头之外的 260 个字符。但是由于文件名中允许使用空格(和其他字符),我需要确保没有额外的反斜杠可以指示前面的字符是文件夹的名称,而后面的不是文件名本身.
我很确定没有完美的解决方案(完美是善的敌人),但我想知道是否有人可以提出“最好的”解决方案?
【问题讨论】: