^(?<path>(?:[a-zA-Z]:)?//(?:[^///?///*/|<>:"]+//)+)(?<filename>(?<name>[^///?///*/|<>:"]+?)/.(?<ext>[^.///?///*/|<>:"]+))$
下面解析下这个表达式
01
^ #匹配字符串的开始
02
(?<path> #文件路径分组,指定分组名为path
03
(?:[a-zA-Z]:)?// #匹配盘符,如"C:/"、"e:/"、"/"
04
(?:[^///?///*/|<>:"]+//)+ #匹配文件夹名称部分,如"folder1/"、"folder1/folder2/"
05
) #文件路径分组结束
06
(?<filename> #文件名分组,指定分组名为filename
07
(?<name> #文件名分组,指定分组名为name
08
[^///?///*/|<>:"]+?) #匹配文件名称,不包含字符'/'、'?'、'/'、'|'、'<'、'>'、':'、'"'
09
/. #匹配字符'.'
10
(?<ext>[^.///?///*/|<>:"]+) #匹配文件后缀名
11
)
12
$ #匹配字符串的结束