C#에서 이스케이프 문자(Escape Character)는 역슬래시(\)와 함께 사용되어 탭, 줄 바꿈, 특수 제어 문자 등을 표현하는 특별한 문자 시퀀스입니다. 특히 정규식(Regular Expression)을 다룰 때 자주 활용되므로 각 문자의 의미를 정확히 이해하는 것이 중요합니다.
C# 주요 이스케이프 문자 목록
아래는 C#에서 사용할 수 있는 대표적인 이스케이프 문자와 설명, 그리고 정규식 패턴 예제입니다.
| 이스케이프 문자 | 설명 | 패턴 예제 |
|---|---|---|
| \a | 벨(bell) 문자 \u0007과 일치합니다. | \a |
| \b | 문자 클래스 내에서 백스페이스(backspace) 문자 \u0008과 일치합니다. | [\b]{3} |
| \t | 탭(tab) 문자 \u0009와 일치합니다. | (\w+)\t |
| \r | 캐리지 리턴(carriage return) 문자 \u000D와 일치합니다. 참고로 \r은 줄 바꿈 문자인 \n과 동일하지 않습니다. | \r\n(\w+) |
| \v | 세로 탭(vertical tab) 문자 \u000B와 일치합니다. | [\v]{2} |
| \f | 폼 피드(form feed) 문자 \u000C와 일치합니다. | [\f]{2} |
| \n | 새 줄(new line) 문자 \u000A와 일치합니다. | \r\n(\w+) |
| \e | 이스케이프(escape) 문자 \u001B와 일치합니다. | \e |
| \nnn | 8진수 표현법으로 문자를 지정합니다. nnn은 최대 3자리 숫자로 구성됩니다. | \w\040\w |
| \x nn | 16진수 표현법으로 문자를 지정합니다. nn은 반드시 2자리 숫자여야 합니다. | \w\x20\w |
| \c X / \c x | X 또는 x가 지정하는 ASCII 제어 문자와 일치합니다. 여기서 X 또는 x는 제어 문자에 해당하는 알파벳입니다. | \cC |
| \u nnnn | 16진수 표현법으로 유니코드 문자와 일치합니다. nnnn은 정확히 4자리 숫자여야 합니다. | \w\u0020\w |
| \ | 뒤에 오는 문자가 이스케이프 문자로 인식되지 않는 경우, 해당 문자 그대로와 일치합니다. | \d+[\+-x\*]\d+ |
이스케이프 문자 사용 시 주의사항
정규식에서 역슬래시(\) 자체를 문자로 매칭하려면 \\처럼 두 번 작성해야 합니다. 또한 C# 문자열에서는 이스케이프 시퀀스가 먼저 해석되므로, 정규식을 작성할 때는 축자 문자열(literal string)인 @"..." 형태를 사용하면 역슬래시 처리가 훨씬 간편해집니다.
예제 코드
string pattern = @"\d+\s\w+"; // 숫자 + 공백 + 문자 조합 매칭
string input = "123 apple";
bool isMatch = System.Text.RegularExpressions.Regex.IsMatch(input, pattern);위 표의 이스케이프 문자들을 잘 활용하면 공백, 탭, 줄 바꿈 등 다양한 제어 문자를 정확하게 처리할 수 있어 더욱 견고한 문자열 처리 로직을 구현할 수 있습니다.