A股上市公司传智教育(股票代码 003032)旗下技术交流社区北京昌平校区

 找回密码
 加入黑马

QQ登录

只需一步,快速开始

© 刘明杰 中级黑马   /  2013-2-4 17:13  /  1652 人查看  /  3 人回复  /   0 人收藏 转载请遵从CC协议 禁止商业使用本文

从文件路径中提取出文件名(包含后缀)。比如从c:\windows\testb.txt中提取出testb.txt这个文件名出来

这个用正则表达式怎么写,不使用Path.GetFileName

3 个回复

倒序浏览
小弟不才,只知道一个不严谨的,   .+\\(.+)   圆括弧中的就是,高手勿喷啊...不严谨啊不严谨
回复 使用道具 举报
本帖最后由 王立 于 2013-2-5 20:14 编辑

    //  [^\\]  表示匹配的里面没有\  ,如果用.的话就匹配出来 windows\testb.txt
            string str=@"c:\windows\testb.txt";
            string value = "";
            Match mc = Regex.Match(str, @"\\([^\\]+)$", RegexOptions.IgnoreCase);
            //Match mc = Regex.Match(str, @"\\(.+)$", RegexOptions.IgnoreCase);
            if (mc.Success)
            {
                value = mc.Groups[1].Value.ToString();
            }

            MessageBox.Show(value);
回复 使用道具 举报
既然包含后缀,必然含有  .  这个字符,而且匹配的里面不能有\号
那就可以这样写

pattern = @"\\([^\\]+)$"
回复 使用道具 举报
您需要登录后才可以回帖 登录 | 加入黑马