c#에서 .vdproj 파일에서 곱 값을 찾고 대체하기위한 .net regex 표현식

StackOverflow https://stackoverflow.com/questions/1817108

  •  08-07-2019
  •  | 
  •  

문제

Visual Studio 2003 생성 설정 .VDPROJ 파일 내에서 다른 설정을 업데이트 할 수있는 NANT Extension 작업을 작성하려고합니다.

구체적으로, Regex 표현식을 사용하여 발견 된 경우 ProductName 값에 할당 된 값 문자열 값을 Entirty의 새로운 문자열 값으로 바꾸고 싶습니다.

나는 "productName"을 다른 값으로 변경하도록 설정된 REGEX 표현식을 찾고 있습니다. 문자열이 "ProductName"= "8"로 시작하는 것 이외의 다른 것에 의존 할 필요없이 다음과 같은 다른 값에 의존 할 필요가 없습니다. "마크. 나는 다음과 같이 시도했다.

다음 코드 조각을 실행하기 전에 .vdproj 파일의 ProductName은 다음을 읽습니다.

"ProductName" = "8:My Simple .NET Application"

... 그리고 C#의 코드 조각 :

string _theProductName = "My Other Native Application";

Regex productNameExpression = new Regex( @"(?:\""ProductName\"" = \""8:*)" );

_theProjectFileContents = 
productNameExpression.Replace(_theProjectFileContents, 
                              "\"ProductName\" = \"8:" + _theProductName + "\"" );

bool updatedProductName = 
(_theProjectFileContents.IndexOf(_theProductName) >= 0);

위의 코드 조각을 실행 한 후 .vdproj 파일의 제품 이름은 이제 읽습니다.

"ProductName" = "8:My Simple .NET Application"My Other Native Application"

닫지 만 "내 다른 기본 응용 프로그램"이 "내 간단한 .NET 응용 프로그램"을 대체 할 것으로 기대하고 있었지만 추가하지 않았습니다.

모든 통찰력과 도움은 크게 감사 할 것입니다.

도움이 되었습니까?

해결책

당신은 거의 거기에 있습니다 - 단일 만 놓치고 있습니다.
당신의 성적을 바꾸면 행복을 따라야합니다 ...

Regex productNameExpression = new Regex(@"(?:\""ProductName\"" = \""8:.*)"); 

참고. 8 이후 :

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top