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

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分开,最好能用正则匹配。谢谢各位
...全文
181 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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);
q107770540 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

110,538

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Web++
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

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

试试用AI创作助手写篇文章吧