正则表达式仅能初步校验路径字符串格式合法性,无法判断存在性、权限或语义正确性;windows需排除控制字符及非法符号并支持盘符/unc,unix类系统禁nul且规范斜杠使用,跨平台宜先排除空值与危险字符,生产环境必须结合系统api解析与白名单控制。
正则表达式可用于初步校验文件路径格式是否合法,但需注意:它无法判断路径是否存在或是否有访问权限,仅检查字符串结构是否符合常见操作系统(如 windows、linux/macos)的命名规范。
Windows 路径的基本校验
Windows 路径常含盘符(如 C:)、反斜杠分隔、禁止字符( : " / | ? *),且不能以空格或点结尾。
- 基础正则(支持盘符+绝对路径):
^[a-zA-Z]:\(?:[^:"/\|?* -]*\)*[^:"/\|?* -]*$ - 若允许 UNC 路径(如 \servershare),可扩展为:
^(?:[a-zA-Z]:\|\\[^\]+\[^\]+)(?:[^:"/\|?* -]*\)*[^:"/\|?* -]*$ - 注意:正则中
