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 네임스페이스를 활용하면 와일드카드 기반의 유연한 문자열 검색 및 필터링을 간단하게 구현할 수 있습니다.