C#文件上载:reg ex中没有组?

C#文件上载:reg ex中没有组?,c#,regex,file,upload,C#,Regex,File,Upload,直到今天早上,这个代码一直正常工作,有人能发现我的错误吗?可能真的很傻,但这让我难堪 我使用一个表单提交一个文件(字段名“fileUpEx”),然后我编写了一个类来上传它(就像我说的,它已经工作了很久了)。。。。 (如果我将“文件路径”写入页面,则为“Test copy.pdf”) 我的类返回“无组”!!! 很奇怪,有人能帮忙吗 string filepath = fileUpEx.PostedFile.FileName; string pat = @"\\(?:.+)\\(.+)\.(.+)"

直到今天早上,这个代码一直正常工作,有人能发现我的错误吗?可能真的很傻,但这让我难堪

我使用一个表单提交一个文件(字段名“fileUpEx”),然后我编写了一个类来上传它(就像我说的,它已经工作了很久了)。。。。 (如果我将“文件路径”写入页面,则为“Test copy.pdf”) 我的类返回“无组”!!! 很奇怪,有人能帮忙吗

string filepath = fileUpEx.PostedFile.FileName;
string pat = @"\\(?:.+)\\(.+)\.(.+)";
Regex r = new Regex(pat);
Match m = r.Match(filepath);
if (m.Groups[0].Captures.Count != 0)
{ 
   //blaa blaa blaa
}
else 
{
   return "no Groups";
}
提前感谢,,
Vauneen

正则表达式要求文件路径包含反斜杠,但它不包含反斜杠。您可以将该部分设置为可选部分,例如:

@"(?:\\.+\\)?(.+)\.(.+)"
或者,您可以使用以下可用的方法:


字符串
“Test copy.pdf”
当然与您的正则表达式不匹配。。。请
Console.WriteLine(filepath)
查看其实际内容。是否要解释正则表达式-您似乎希望使用UNC文件名?!失败时,什么是
fileUpEx.PostedFile.FileName
string extension = Path.GetExtension(filePath);
string filename = Path.GetFilenameWithoutExtension(filePath);