寻求匹配有效Windows相对路径的简易正则表达式(PowerShell适用)
寻找匹配有效Windows相对路径的正则表达式
当前使用的正则^\.\.?\\\w+无法覆盖所有有效Windows相对路径格式,需要一个能匹配所有情况的简易正则,用于PowerShell的ValidateScript块。
需要匹配的基础路径示例
..\meeting_minutes.txt ..\..\profile.txt Reports\2023\summary.txt .\Reports\2023\summary.txt ..\Projects\project_a.docx .\my_file.txt ..\..\data
补充需求:支持含有效特殊字符的路径
还需要匹配包含合法特殊字符的路径,示例如下:
..\Music#a\file.mp3 ..\Music[Genre]\file.mp3 ..\Music(Genre)\file.mp3 ..\Music-Hardcore-Metal\file.mp3 ..\Documents\My+File.xlsx ..\Documents\Some{Document}.py ..\Files\Afilewithweird;Characters'`.doc ..\Music#^@!()-+{};',.`~a\file.mp3
推荐正则表达式
以下正则可覆盖上述所有场景:
^(?:\.\.?|[\w#^@!()+{}-,.`~]+)(?:\\(?:\.\.?|[\w#^@!()+{}-,.`~]+))*$
正则说明
^:匹配字符串起始位置(?:\.\.?|[\w#^@!()+{}-,.~]+)`:匹配路径起始段,支持`.`/`..`或者包含允许特殊字符的目录/文件名(?:\\(?:\.\.?|[\w#^@!()+{}-,.~]+))*:匹配后续路径段,每个段以`开头,后跟./..或合法的目录/文件名,*表示可包含0个或多个此类路径段$:匹配字符串结束位置
注意
该正则自动排除了Windows路径中禁止的字符(如:、*、?、"、<、>、|),确保匹配结果均为合法路径。
内容的提问来源于stack exchange,提问作者fmotion1
相关产品推荐
相关产品推荐

