Computer >> 컴퓨터 >  >> 프로그래밍 >> C#

C# 정규식(Regex) 활용 가이드: 문자열 분할과 공백 제거 예제

정규식(Regular Expression)이란?

정규식은 입력 텍스트와 비교해 일치 여부를 검사할 수 있는 특수한 패턴입니다. .NET 프레임워크는 System.Text.RegularExpressions 네임스페이스를 통해 정규식 엔진을 기본 제공하므로, 별도의 외부 라이브러리 없이도 강력한 문자열 처리를 수행할 수 있습니다.

Regex.Split으로 문자열 분할하기

정규식을 구분자로 삼아 문자열을 나누려면 Regex.Split 메서드를 사용합니다. 예를 들어 줄바꿈(\r\n)을 패턴으로 지정하면 문자열을 줄 단위로 손쉽게 분할할 수 있습니다.

다음과 같은 문자열이 있다고 가정해 보겠습니다.

string str = "Hello\r\nWorld";

이제 Regex.Split을 사용해 위 문자열을 분할합니다.

string[] res = Regex.Split(str, "\r\n");

예제 1: 정규식으로 문자열 분할하기

using System;
using System.Text.RegularExpressions;

class Demo {
    static void Main() {
        string str = "Hello\r\nWorld";

        string[] res = Regex.Split(str, "\r\n");

        foreach (string word in res) {
            Console.WriteLine(word);
        }
    }
}

실행 결과:

Hello
World

정규식으로 여분의 공백 제거하기

Regex 클래스의 Replace 메서드에 \s+ 패턴을 적용하면 연속된 공백을 하나의 공백으로 치환할 수 있습니다. 여기서 \s는 공백·탭·줄바꿈 등 모든 공백 문자를 의미하며, 뒤에 붙는 +는 '하나 이상 반복'을 뜻합니다.

예제 2: 연속 공백 정리하기

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
    class Program {
        static void Main(string[] args) {
            string input = "Hello   World  ";
            string pattern = "\\s+";
            string replacement = " ";

            Regex rgx = new Regex(pattern);
            string result = rgx.Replace(input, replacement);

            Console.WriteLine("Original String: {0}", input);
            Console.WriteLine("Replacement String: {0}", result);
            Console.ReadKey();
        }
    }
}

실행 결과:

Original String: Hello   World  
Replacement String: Hello World

마무리

C#의 정규식 엔진을 활용하면 문자열 분할(Split), 치환(Replace), 검색(Match) 같은 작업을 몇 줄의 코드로 처리할 수 있습니다. \r\n(줄바꿈)과 \s+(연속 공백)처럼 자주 쓰이는 패턴만 익혀 두어도 실무에서 문자열을 다루는 생산성이 크게 향상됩니다.