以下 行首 含中文,含空格的路径
^[a-zA-Z]:(\\[\w\u4e00-\u9fa5\s]+)+
以下是 非行首 ,包括文件名.扩展名的路径。含中文,含空格的路径
[a-zA-Z]:(\\[\w\u4e00-\u9fa5\s]+)+[.\w\u4e00-\u9fa5\s]+
// 文件名路径 最新测试通过
[a-zA-Z]:(\\[\w\u4e00-\u9fa5-{}][\w\u4e00-\u9fa5\s-{}])([.a-z-{}\\]{0,99}[\w\u4e00-\u9fa5-{}])*
以下是在 双引号中 包含空格的路径 或 路径+文件名(且\后不能有空格)
"[a-zA-Z]:(\\[\w\u4e00-\u9fa5]+[\w\u4e00-\u9fa5\s]*)+"
以下是在 双引号中 包含空格的路径或路径+文件名 (且\后不能有空格)。
"[a-zA-Z]:(\\[\w\u4e00-\u9fa5]+[\w\u4e00-\u9fa5\s]*)+([.]{0,1}[\w\u4e00-\u9fa5]+)"
包含空格的路径或路径+文件名 (且\后不能有空格)。
[a-zA-Z]:(\\[\w\u4e00-\u9fa5]+[\w\u4e00-\u9fa5\s]*)+([.]{0,1}[\w\u4e00-\u9fa5]+)
//win10测试成功 路径+文件名最终版
[a-zA-Z]:(\\[\w\u4e00-\u9fa5{}\[\]_@#$%^&*()\-+\s.]+)+[\w\u4e00-\u9fa5\[\]{}_@#$%^&*()\-+\s.]+(\.[\w\u4e00-\u9fa5\_\-]+)+
最终版 路径+文件名 ,含空格(且\后不能有空格),扩展名 . 后面必须有 【路径合法字符】名字头不能是.
(花了4小时测试,win7 C# winform 环境下,没问题)
string pattern="[a-zA-Z]:(\\[\w\u4e00-\u9fa5\(\)\[\]\{\}`~!@#$%^&]+[`~!@#$%^&\(\)\[\]\{\}\s\w\u4e00-\u9fa5]+)+(\\[`~!@#$%^&\w\u4e00-\u9fa5.\(\)\[\]\{\}]([.]*[`~!@#$%^&\w\s\(\)\[\]\{\}\u4e00-\u9fa5])+)+";
string pattern = @"[a-zA-Z]:(\\[\w\u4e00-\u9fa5\(\)\[\]\{\}`~!@#$%^&]+[`~!@#$%^&\(\)\[\]\{\}\s\w\u4e00-\u9fa5]+)+(\\[`~!@#$%^&\w\u4e00-\u9fa5.\(\)\[\]\{\}]([.]*[`~!@#$%^&\w\s\(\)\[\]\{\}\u4e00-\u9fa5])+)+";
Regex regex = new Regex(pattern, RegexOptions.IgnoreCase, new TimeSpan(0, 0, 0,0,300));
var match=regex.Matches(xx13);
int c = 0;
foreach (var j in match) {
if (c > 0) //过滤掉 第一个匹配,因为那个 进程路径。。
listpath.Add("fileName"+(c)+" : " + j.ToString());
c++;
}