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

C#에서 와일드카드를 활용한 문자열 매칭 방법

C#에서 문자열을 다룰 때 가장 널리 사용되는 와일드카드 문자는 별표(*)입니다. 별표는 문자열 내에서 0개 이상의 임의의 문자를 의미하며, 정규식(Regex)과 함께 사용하면 원하는 패턴의 단어나 문장을 손쉽게 검색할 수 있습니다.

와일드카드 패턴 예시

다음 예제에서는 별표 역할을 하는 \S* 패턴을 사용하여, 't'로 시작하고 's'로 끝나는 단어를 문자열에서 찾아보겠습니다.

@"\bt\S*s\b"

여기서 각 요소의 의미는 다음과 같습니다.

  • \b: 단어 경계(word boundary)를 나타냅니다.
  • t: 단어의 시작 문자입니다.
  • \S*: 공백을 제외한 0개 이상의 임의의 문자에 해당합니다.
  • s: 단어의 마지막 문자입니다.

전체 예제 코드

using System;
using System.Text.RegularExpressions;

namespace Demo {
    public class Program {
        private static void showMatch(string text, string expr) {
            MatchCollection mc = Regex.Matches(text, expr);
            foreach (Match m in mc) {
                Console.WriteLine(m);
            }
        }
        public static void Main(string[] args) {
            string str = "toss cross tacos texas";
            Console.WriteLine("Matching words that start with 't' and ends with 's':");
            showMatch(str, @"\bt\S*s\b");
        }
    }
}

실행 결과

Matching words that start with 't' and ends with 's':
toss
tacos
texas

코드 설명

Regex.Matches() 메서드는 입력된 문자열에서 지정한 정규식 패턴과 일치하는 모든 항목을 MatchCollection 형태로 반환합니다. 이후 foreach 반복문을 통해 일치하는 각 단어를 콘솔에 출력합니다.

이처럼 C#의 System.Text.RegularExpressions 네임스페이스를 활용하면 와일드카드 기반의 유연한 문자열 검색 및 필터링을 간단하게 구현할 수 있습니다.