string a = "서 물 시 여 의 도";
var value = Regex.Replace(a, "서물시", "서울시");
// value = "서울시 여 의 도"
“서 물 시” 를 “서물시” 로 공백을 무시하고 찾는 방법을 모르겠습니다.
“서 물 시” 사이에 공백이 1개 이상일수 있어서 공백 무시가 필요합니다.
Regex.Replace의 4번째 인자값인 RegexOptions.IgnorePatternWhitespace
는 2번째 인자의 pattern의 공백을 무시하는 옵션이더군요.
저는 1번째 인자의 input의 공백을 무시하고 싶습니다.
input에 공백을 전부 제거해서 찾아도 되지만 변경 후 공백을 다시 복원해야 합니다.
어렵네요ㅠ
2개의 좋아요
루나시아
2
공백을 제거한 입력값이 항상 서물시로 동일하다면 각 단어 사이에 공백 문자와 수량자를 조합해 해결할 수 있습니다.
string a = "서 물 시 여 의 도";
var value = Regex.Replace(a, @"서\s*물\s*시", "서울시");
Console.WriteLine(value);
\s는 공백 문자를 인식하며, *(애스터리스크)는 앞 항목이 0번 이상 일치함을 지정합니다.
7개의 좋아요
공백을 복원해야 한다고 해서 이런 내용으로 잘 못 이해하고 답글 달 고 있었네요 ㅎㅎ…;;
var replaced = Regex.Replace("서 물 시 여 의 도", @"서(\s*)물(\s*)시", match => $"서{match.Groups[1]}울{match.Groups[2]}시");
// replaced = "서 울 시 여 의 도";
7개의 좋아요
@루나시아 님과 동일한 답변으로 알려준
ChatGPT 의 답변 이네요 ㅎㅎ
![image]()
7개의 좋아요
루나시아
8
이러다 저 나중에 백수되는 거 아니겠죠…? ㅎㅎ…
6개의 좋아요
신기하네요ㄷㄷㄷㄷ
ChatGPT 이런게 있는지도 몰랐어요
2개의 좋아요