C# Regex 클래스란 무엇인가?
Regex 클래스는 C#에서 정규 표현식(Regular Expression)을 나타내는 데 사용되는 클래스입니다. 정규 표현식이란 입력 텍스트와의 일치 여부를 검사할 수 있는 특정 패턴을 의미하며, 문자열 검색·치환·분할 작업에서 매우 강력한 도구로 활용됩니다.
Regex 클래스는 System.Text.RegularExpressions 네임스페이스에 포함되어 있으며, 다양한 메서드를 통해 문자열 처리 작업을 손쉽게 수행할 수 있습니다.
Regex 클래스의 주요 메서드
Regex 클래스에서 자주 사용되는 대표적인 메서드는 다음과 같습니다.
| 번호 | 메서드 및 설명 |
|---|---|
| 1 | public bool IsMatch(string input) Regex 생성자에 지정된 정규 표현식이 지정된 입력 문자열에서 일치하는 항목을 찾는지 여부를 나타냅니다. |
| 2 | public bool IsMatch(string input, int startat) 입력 문자열의 지정된 시작 위치부터 정규 표현식과 일치하는 항목이 있는지 검사합니다. |
| 3 | public static bool IsMatch(string input, string pattern) 지정된 정규 표현식 패턴이 입력 문자열에서 일치하는지 여부를 확인합니다. |
| 4 | public MatchCollection Matches(string input) 입력 문자열 전체에서 정규 표현식과 일치하는 모든 항목을 검색하여 컬렉션 형태로 반환합니다. |
| 5 | public string Replace(string input, string replacement) 입력 문자열에서 정규 표현식 패턴과 일치하는 모든 문자열을 지정된 대체 문자열로 치환합니다. |
| 6 | public 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 클래스를 활용하면 복잡한 문자열 패턴 매칭 작업을 간결하고 효율적으로 처리할 수 있습니다.