寻找正则表达式从.sln文件获取SccTeamFoundationServer值

时间:2011-01-07 11:31:25

标签: c# regex tfs

我正在寻找C#的Regex来从.sln文件中获取SccTeamFoundationServer值。 也许有人遇到过这种需求并找到了解决方案。你能帮忙吗?

文件:

Microsoft Visual Studio Solution File, Format Version 10.00
# Visual Studio 2008
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebApplication", "WebApplication\WebApplication.csproj", "{AE0F6C02-1C8D-426D-AFA0-C07A52E6112F}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "ConsoleApplication", "ConsoleApplication\ConsoleApplication.csproj", "{2BD82C34-CF50-4559-A3CD-F85ACD657292}"
EndProject
Global
    GlobalSection(TeamFoundationVersionControl) = preSolution
        SccNumberOfProjects = 3
        SccEnterpriseProvider = {4CA58AB2-18FA-4F8D-95D4-32DDF27D184C}
        SccTeamFoundationServer = http://ServerName:8080/
        SccLocalPath0 = .
        SccProjectUniqueName1 = ConsoleApplication\\ConsoleApplication.csproj
        SccProjectName1 = ConsoleApplication
        SccLocalPath1 = ConsoleApplication
        SccProjectUniqueName2 = WebApplication\\WebApplication.csproj
        SccProjectName2 = WebApplication
        SccLocalPath2 = WebApplication
    EndGlobalSection
    GlobalSection(SolutionConfigurationPlatforms) = preSolution
        Debug|Any CPU = Debug|Any CPU
        Release|Any CPU = Release|Any CPU
    EndGlobalSection
    GlobalSection(ProjectConfigurationPlatforms) = postSolution
        {AE0F6C02-1C8D-426D-AFA0-C07A52E6112F}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {AE0F6C02-1C8D-426D-AFA0-C07A52E6112F}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {AE0F6C02-1C8D-426D-AFA0-C07A52E6112F}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {AE0F6C02-1C8D-426D-AFA0-C07A52E6112F}.Release|Any CPU.Build.0 = Release|Any CPU
        {2BD82C34-CF50-4559-A3CD-F85ACD657292}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
        {2BD82C34-CF50-4559-A3CD-F85ACD657292}.Debug|Any CPU.Build.0 = Debug|Any CPU
        {2BD82C34-CF50-4559-A3CD-F85ACD657292}.Release|Any CPU.ActiveCfg = Release|Any CPU
        {2BD82C34-CF50-4559-A3CD-F85ACD657292}.Release|Any CPU.Build.0 = Release|Any CPU
    EndGlobalSection
    GlobalSection(SolutionProperties) = preSolution
        HideSolutionNode = FALSE
    EndGlobalSection
EndGlobal

2 个答案:

答案 0 :(得分:0)

基于this和一些猜测,以下可能会解决这个问题:

\bSccTeamFoundationServer\s*=\s*(['"]?)([^\1\n]*)\1

它允许使用可选的单引号/双引号并使用反向引用来确保两端使用的引号匹配。它不处理转义引号。

答案 1 :(得分:0)

如果我使用这个

(。SccTeamFoundationServer \ S * = \ S *(*))

TFS服务器地址将是捕获组2.整行是捕获组1.如果您希望更容易提取它们,可以向捕获组添加名称。