C# 특정 문자열 삭제, 특정 문자열 교체 Regex.Replace

 

 

특정 문자열과, 삭제할 단어 혹은 문자가 주어졌을 때, 

삭제하거나 교체하는 방법을 알아보도록 하자.

예시
Hello my world! 가 주어졌을 때, o와 y를 제외하고 출력하기
-> Hell m wrld!

 

기본적인 방법 : Replace 사용하기

myString.Replace("o", "").Replace("y", "");

오류가 날 여지가 없기 때문에 별도 오류검사를하지 않고 바로 메서드를 연결하면 된다. 

하지만 대체해야 되는 문자열의 갯수가 여러개라면 Replace는 방법은 확장성에서 좋은 방법이 아니다.

 

(많아지면 배열에 넣어넣고, 루프 문을 돌릴 수밖에 없다)

 

 

심화적인 방법 : Regex.Replace 사용하기

using System.Text.RegularExpressions; // using 필요

// 방법 1
Regex.Replace(myString, @"[oy]", "");
// 방법 2
Regex.Replace(myString, @"o|y", "");

System.Text.RegularExpressions 네임 스페이스에는 Regex 함수들을 사용할 수 있다.

Regex 함수들은 정규식을 사용하여 여러 텍스트 처리가 가능하다. 

정규식 자체는 배워야하지만 코드도 간소화되고 처리할 수있는 범위가 굉장히 넓다. 

 

@ : 정규식 앞에 붙여서 Escape문자를 무시하도록 한다.

[] : 안에 들어있는 문자열들을 oir로 인식한다, 범위는 [a-z] 와 같이 -를 붙여준다. [oy]는 o나 y중 아무거나 or의 의미

| : 연결된 문자의 or

 

 

 

 

정규식에 대한 자세한 내용은 MSDN을 참고하자.

MSDN : 정규식 언어 - 빠른 참조
https://learn.microsoft.com/ko-kr/dotnet/standard/base-types/regular-expression-language-quick-reference

 

 

댓글

Designed by JB FACTORY