정규식(Regular Expression)이란?
정규식은 입력 텍스트와 비교해 일치 여부를 검사할 수 있는 특수한 패턴입니다. .NET 프레임워크는 System.Text.RegularExpressions 네임스페이스를 통해 정규식 엔진을 기본 제공하므로, 별도의 외부 라이브러리 없이도 강력한 문자열 처리를 수행할 수 있습니다.
Regex.Split으로 문자열 분할하기
정규식을 구분자로 삼아 문자열을 나누려면 Regex.Split 메서드를 사용합니다. 예를 들어 줄바꿈(\r\n)을 패턴으로 지정하면 문자열을 줄 단위로 손쉽게 분할할 수 있습니다.
다음과 같은 문자열이 있다고 가정해 보겠습니다.
string str = "Hello\r\nWorld";
이제 Regex.Split을 사용해 위 문자열을 분할합니다.
string[] res = Regex.Split(str, "\r\n");
예제 1: 정규식으로 문자열 분할하기
using System;
using System.Text.RegularExpressions;
class Demo {
static void Main() {
string str = "Hello\r\nWorld";
string[] res = Regex.Split(str, "\r\n");
foreach (string word in res) {
Console.WriteLine(word);
}
}
}
실행 결과:
Hello
World
정규식으로 여분의 공백 제거하기
Regex 클래스의 Replace 메서드에 \s+ 패턴을 적용하면 연속된 공백을 하나의 공백으로 치환할 수 있습니다. 여기서 \s는 공백·탭·줄바꿈 등 모든 공백 문자를 의미하며, 뒤에 붙는 +는 '하나 이상 반복'을 뜻합니다.
예제 2: 연속 공백 정리하기
using System;
using System.Text.RegularExpressions;
namespace RegExApplication {
class Program {
static void Main(string[] args) {
string input = "Hello World ";
string pattern = "\\s+";
string replacement = " ";
Regex rgx = new Regex(pattern);
string result = rgx.Replace(input, replacement);
Console.WriteLine("Original String: {0}", input);
Console.WriteLine("Replacement String: {0}", result);
Console.ReadKey();
}
}
}
실행 결과:
Original String: Hello World
Replacement String: Hello World
마무리
C#의 정규식 엔진을 활용하면 문자열 분할(Split), 치환(Replace), 검색(Match) 같은 작업을 몇 줄의 코드로 처리할 수 있습니다. \r\n(줄바꿈)과 \s+(연속 공백)처럼 자주 쓰이는 패턴만 익혀 두어도 실무에서 문자열을 다루는 생산성이 크게 향상됩니다.