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

C# 정규식(Regex)을 활용한 패턴 매칭 방법과 예제

C# 정규식(Regex) 패턴 매칭이란?

정규식(Regular Expression, Regex)은 입력 텍스트와 비교하여 일치 여부를 확인할 때 사용하는 패턴입니다. 하나의 패턴은 하나 이상의 문자 리터럴(literal), 연산자(operator), 또는 구문(construct)으로 구성됩니다.

이번 글에서는 C#의 System.Text.RegularExpressions 네임스페이스를 활용해, 문자열에서 'M'으로 시작하는 단어만 추출하여 출력하는 방법을 예제와 함께 살펴보겠습니다.

예제 코드

using System;
using System.Text.RegularExpressions;

namespace Demo {
    class Program {
        private static void showMatch(string text, string expr) {
            Console.WriteLine("The Expression: " + expr);
            MatchCollection mc = Regex.Matches(text, expr);
            foreach (Match m in mc) {
                Console.WriteLine(m);
            }
        }

        static void Main(string[] args) {
            string str = "Mandatory requirements for a Cricket Match Event!";

            Console.WriteLine("Matching words that start with 'M': ");
            showMatch(str, @"\bM\S*");
            Console.ReadKey();
        }
    }
}

실행 결과

Matching words that start with 'M':
The Expression: \bM\S*
Mandatory
Match

코드 설명

먼저 아래와 같이 검색 대상이 되는 문자열을 준비합니다.

string str = "Mandatory requirements for a Cricket Match Event!";

'M'으로 시작하는 모든 단어를 찾기 위해 다음과 같은 정규식 패턴을 사용했습니다.

@"\bM\S*"

패턴을 구성하는 각 요소의 의미는 다음과 같습니다.

  • \b : 단어 경계(word boundary)를 나타내며, 단어의 시작 위치에서 일치를 시작하도록 합니다.
  • M : 대문자 'M'과 정확히 일치하는 문자입니다.
  • \S* : 공백이 아닌 문자 0개 이상을 의미하며, 'M' 뒤에 이어지는 나머지 글자들을 모두 포함합니다.

Regex.Matches() 메서드는 입력 문자열에서 패턴과 일치하는 모든 결과를 MatchCollection 형태로 반환합니다. 이를 foreach 문으로 순회하면 위 실행 결과처럼 'Mandatory'와 'Match'라는 두 단어가 출력되는 것을 확인할 수 있습니다.