2011-01-07 4 views
0

나는 .sln 파일에서 SccTeamFoundationServer 값을 얻기 위해 C#의 Regex를 찾고 있습니다. 어쩌면 누군가가 그러한 필요를 발견하고 해결책을 찾았을 것입니다. 도와 드릴까요?.sln 파일에서 SccTeamFoundationServer 값을 얻으려면 Regex를 찾으십시오.

파일 :

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 
+0

사람들이 정규식에 익숙하지만 .sln 형식이 아닌 – RolandasR

+0

이 아닌 경우 파일 예제를 사용하는 것이 훨씬 쉽습니다. 그렇지 않으면 Expresso - http://www.ultrapico.com/Expresso.htm을 사용해보십시오. 정규식을 만드는 데 매우 유용한 도구입니다. 앱에 sln 파일의 내용을 붙여 넣기 만하면 정확한 값을 추출합니다. – jjrdk

+0

@jjrdk 또는 이와 유사한 온라인 도구 : http://txt2re.com/ – marcog

답변

0

this을 기반으로하고 추측 약간의 트릭 할 수있는 다음과 같은 : 그것은 선택적 단일/이중 인용 부호를 허용하고 있는지 확인하기 위해 역 참조를 사용

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

을 양쪽 끝에서 사용 된 따옴표. 이스케이프 된 따옴표는 처리하지 않습니다.

+0

감사합니다.하지만 "SccTeamFoundationServer = http : // ServerName : 8080 /"뒤에 모든 텍스트가 나타납니다. – Arthur

+0

@Arthur 그런 다음 '\ n' 그룹화 된 문자 클래스. 편집을 참조하십시오. – marcog

+0

전체 Regex 붙여 넣을 수 있습니까? – Arthur

0

나는이

사용하는 경우 (SccTeamFoundationServer \ S * = \ s의 *를 (. *))

하여 TFS 서버 주소는 캡처 그룹이 될 것입니다 2. 전체 라인은 캡처 그룹 1. 당신은 할 수있다 캡처하기 쉽도록하려면 캡처 그룹에 이름을 추가하십시오.

+0

감사합니다.하지만 "SccTeamFoundationServer = ServerName : 8080 /"다음에 모든 텍스트가 표시됩니다. – Arthur

관련 문제