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

C# Regex 클래스란? 주요 메서드와 사용 예제 총정리

C# Regex 클래스란 무엇인가?

Regex 클래스는 C#에서 정규 표현식(Regular Expression)을 나타내는 데 사용되는 클래스입니다. 정규 표현식이란 입력 텍스트와의 일치 여부를 검사할 수 있는 특정 패턴을 의미하며, 문자열 검색·치환·분할 작업에서 매우 강력한 도구로 활용됩니다.

Regex 클래스는 System.Text.RegularExpressions 네임스페이스에 포함되어 있으며, 다양한 메서드를 통해 문자열 처리 작업을 손쉽게 수행할 수 있습니다.

Regex 클래스의 주요 메서드

Regex 클래스에서 자주 사용되는 대표적인 메서드는 다음과 같습니다.

번호메서드 및 설명
1public bool IsMatch(string input)
Regex 생성자에 지정된 정규 표현식이 지정된 입력 문자열에서 일치하는 항목을 찾는지 여부를 나타냅니다.
2public bool IsMatch(string input, int startat)
입력 문자열의 지정된 시작 위치부터 정규 표현식과 일치하는 항목이 있는지 검사합니다.
3public static bool IsMatch(string input, string pattern)
지정된 정규 표현식 패턴이 입력 문자열에서 일치하는지 여부를 확인합니다.
4public MatchCollection Matches(string input)
입력 문자열 전체에서 정규 표현식과 일치하는 모든 항목을 검색하여 컬렉션 형태로 반환합니다.
5public string Replace(string input, string replacement)
입력 문자열에서 정규 표현식 패턴과 일치하는 모든 문자열을 지정된 대체 문자열로 치환합니다.
6public string[] Split(string input)
Regex 생성자에 지정된 정규 표현식 패턴으로 정의된 위치를 기준으로 입력 문자열을 부분 문자열 배열로 분할합니다.

Matches() 메서드 활용 예제

다음 예제는 Matches() 메서드를 사용하여 지정된 입력 문자열에서 정규 표현식과 일치하는 단어를 모두 찾아 출력하는 코드입니다.

예제 코드

using System;
using System.Text.RegularExpressions;

namespace RegExApplication {
    class Program {
        private static void showMatch(string text, string expr) {
            Console.WriteLine("정규 표현식: " + expr);
            MatchCollection mc = Regex.Matches(text, expr);
            foreach (Match m in mc) {
                Console.WriteLine(m);
            }
        }

        static void Main(string[] args) {
            string str = "make maze and manage to measure it";
            Console.WriteLine("'m'으로 시작하고 'e'로 끝나는 단어 찾기:");
            showMatch(str, @"\bm\S*e\b");
            Console.ReadKey();
        }
    }
}

실행 결과

'm'으로 시작하고 'e'로 끝나는 단어 찾기:
정규 표현식: \bm\S*e\b
make
maze
manage
measure

위 예제에서 사용된 정규 표현식 \bm\S*e\b는 단어의 시작(\b) 이후 'm'으로 시작하고, 공백 없는 문자(\S)가 반복된 뒤 'e'로 끝나며(\b) 단어 경계가 되는 패턴을 의미합니다. 그 결과 "make", "maze", "manage", "measure" 네 개의 단어가 정상적으로 추출된 것을 확인할 수 있습니다.

이처럼 Regex 클래스를 활용하면 복잡한 문자열 패턴 매칭 작업을 간결하고 효율적으로 처리할 수 있습니다.