c#에서 .vdproj 파일에서 곱 값을 찾고 대체하기위한 .net regex 표현식
문제
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 이후 :
제휴하지 않습니다 StackOverflow