2010-08-15 2 views
3
buildLetter.Append("</head>").AppendLine(); 
buildLetter.Append("").AppendLine(); 
buildLetter.Append("<style type="text/css">").AppendLine(); 

위의 내용이 파일에 있다고 가정합니다. 빈 문자열 ""이있는 행을 제거하고 중간 인용을 앞에 붙이는 스 니펫을 작성하고 싶습니다. 최종 결과는 다음과 같습니다.C#을 사용하여 특수 문자 앞에 이스케이프 문자를 넣을 수 있습니까?

buildLetter.Append("</head>").AppendLine(); 
buildLetter.Append("<style type=\"text/css\">").AppendLine(); 

외부 "...."는 특수 문자로 간주되지 않습니다. 특수 문자는 단일 따옴표 또는 큰 따옴표 일 수 있습니다.

Visual Studio의 찾기 및 바꾸기 기능을 통해 실행할 수 있습니다. 그러나, 내 경우에는 내가 그것이 C# 또는 VB.NET로 작성되고 싶습니다

어떤 도움을 주실 수 있습니다.

+2

은 어떻게하는 인용 부호 문자열을 종료하고있는 탈출해야한다 알고 있습니까? '("a"+ "b")'와 같은 것을 가질 수 있었습니까? 그렇다면'("a \"+ \ "b")'로 변경해야합니까? –

+0

둘 다 이스케이프해야합니다. 엄지 손가락의 규칙에 따라 처음과 마지막 인용문을 이스케이프해서는 안됩니다. 다른 따옴표는 이스케이프해야합니다. –

답변

3

아마도 이것이 당신이 원하는 것을 :

string s = File.ReadAllText("input.txt"); 
string empty = "buildLetter.Append(\"\").AppendLine();" + Environment.NewLine; 
s = s.Replace(empty, ""); 
s = Regex.Replace(s, @"(?<="").*(?="")", 
     match => { return match.Value.Replace("\"", "\\\""); } 
    ); 

결과 :

 
buildLetter.Append("</head>").AppendLine(); 
buildLetter.Append("<style type=\"text/css\">").AppendLine(); 
+0

시도해보고 알려 드리겠습니다 ... –

+0

Worked ................. –

관련 문제