문자열의 모든 문자열 리터럴을 자리 표시 자로 바꾸려고합니다. 예를 들어 다음 문자열이있는 경우 :Regex를 사용하여 C#에서 문자열 리터럴 바꾸기
문자열 s1 = "foo"; 문자열 s2 = "막대"; 문자열 s3 = "baz";
나는 이것을 대체 할 싶습니다
문자열 S1 = # 0 #; 문자열 s2 = # 1 #; 문자열 s2 = # 2 #;
또한 나중에 사용하기 위해 데이터 구조에서 대체 된 문자열 리터럴 { "foo", "bar", "baz"}을 보유합니다.
나는 무차별 포악한 코딩을 통해이를 수행 할 수 있습니다. 그러나 정규 표현식을 사용하여이 작업을 수행하는 좋은 방법이 있는지 궁금합니다.
내 시도했다 :
MatchCollection textConstants = Regex.Matches(text, "\".*\"");
for (int i=0; i < textConstants.Count; i++)
{
text=text.Replace(textConstants[i].Value, "#" + i + "#");
}'
이것은
당신이 정규 표현식을 사용을 시도 했습니까? 문제를 푸는 데 노력을 기울이고 어디서 붙어 있는지 설명하면 사람들이 솔루션을 숟가락으로 먹이는 것보다 훨씬 많은 것을 도울 수 있습니다. – 4castle