Regex r = new Regex( "(?<FileName>[^\\/]+)\.[^\.\\/]+$" );
Match m = r.Match( fileName );if ( m.Success )
{
   m.Groups[ "FileName" ].Value
}

解决方案 »

  1.   

    请OneDotRed(武装到眼神) 解释一下你的表达式的意思吧
      

  2.   

    (?<FileName>[^\\/]+)\.[^\.\\/]+$"
    限定符+表示匹配1个或多个
    (?<FileName>[^\\/]+)表示匹配1个或多个非/\的字符,
    \.匹配一个点号
    [^\.\\/]+$"
    [^\.\\/]+表示匹配大于1的非./\字符,
    $表示匹配字符串的尾段
    -----------------
    上面的匹配对于没有文件名的文件无效
      

  3.   

    楼上正解。看漏了。其实还可以改进:(?<FileName>[^\\/]+)(\.[^\.\\/]+)?$无扩展名也可匹配。