求教一个简单的字符串判断问题,高分给

abcdotcom 2014-03-12 07:29:51
1. 有一个文本文件读取出部分内容如下,最好利用正则表达式,只输出"Compile Include="后边的哪几个cs文件,就是AppData.cs,ABC\DEF.cs, ABC\EFG.cs,当然可能cs文件名会不同于例子中的
.......
</Reference>
</ItemGroup>
<ItemGroup>
<Compile Include="AppData.cs">
<DependentUpon>AppData.resx</DependentUpon>
</Compile>
<Compile Include="ABC\DEF.cs" />
<Compile Include="ABC\EFG.cs" />
.......

2. 一段字符串"D:\list\\Applications\Phone\App\program.cs" 帮我写一段代码,能自动将program.cs和前边的目录D:\list\\Applications\Phone\App分开,最好能用正则匹配。谢谢各位
...全文
160 点赞 收藏 4
写回复
4 条回复
切换为时间正序
当前发帖距今超过3年,不再开放新的回复
发表回复
threenewbee 2014-03-13
两个问题都不应该用正则表达式。 第一个问题应该用标准的XML解析器解析。 第二个问题应该用Path.GetFileName方法。
回复
夜轻风 2014-03-13
            Regex reg = new Regex(@"<Compile Include=""(?<File>[^""]*)""[^>]*>");
            string str = @"<Compile Include=""AppData.cs"">
      <DependentUpon>AppData.resx</DependentUpon>
    </Compile>
    <Compile Include=""ABC\DEF.cs"" />
    <Compile Include=""ABC\EFG.cs"" />";
            MatchCollection mc = reg.Matches(str);
            foreach (Match m in mc)
                Console.WriteLine(m.Groups["File"].Value);
回复
兔子党-督察 2014-03-12
1. var reg=new Regex(@"(?<=Compile Include=(""))[^""]+(?=\1)"); 2. Path.GetDirectoryName
回复
MikeCheers 2014-03-12
1. <Compile Include="(?'a'[^.]+.cs)"[^>]*> 2.

string address = @"D:\list\Applications\Phone\App\program.cs";
Console.WriteLine(Path.GetDirectoryName(address)); // D:\list\Applications\Phone\App
Console.WriteLine(Path.GetFileName(address)); // program.cs
Console.WriteLine(Path.GetFileNameWithoutExtension(address)); //program
回复
相关推荐
发帖
C#
创建于2007-09-28

10.6w+

社区成员

.NET技术 C#
申请成为版主
帖子事件
创建了帖子
2014-03-12 07:29
社区公告

让您成为最强悍的C#开发者