[c++] 정규 표현식을 활용한 특수 문자 처리
텍스트 데이터를 처리하다보면 특정한 형식의 문자열을 찾거나 변경해야 하는 경우가 있습니다. 이때 정규 표현식(Regular Expression) 을 사용하면 효과적으로 특정 문자열을 처리할 수 있습니다.
정규 표현식이란?
정규 표현식은 문자열의 패턴을 표현하는 방법입니다. 특정한 규칙에 맞는 문자열이나 문자 패턴을 찾거나 수정하기 위해 사용됩니다. 간단한 문자열 처리부터 복잡한 문자열 검색까지 다양한 용도로 활용됩니다.
기본적인 특수 문자 처리
예제 1: 모든 숫자 제거
만약 텍스트 데이터에서 모든 숫자를 제거하고 싶다면, 아래와 같은 정규 표현식을 사용할 수 있습니다.
#include <iostream>
#include <regex>
int main() {
std::string text = "Hello 123 World";
std::regex pattern("\\d");
std::string result = std::regex_replace(text, pattern, "");
std::cout << result; // 출력 결과: Hello World
return 0;
}
위의 예제에서 \\d
는 숫자를 나타내는 정규 표현식입니다.
예제 2: 특수 문자만 남기기
특수 문자만 남기고 나머지 문자들을 제거하려면 아래와 같은 정규 표현식을 사용할 수 있습니다.
#include <iostream>
#include <regex>
int main() {
std::string text = "Hello! @World#";
std::regex pattern("[^a-zA-Z0-9\\s]");
std::string result = std::regex_replace(text, pattern, "");
std::cout << result; // 출력 결과: Hello World
return 0;
}
위의 예제에서 [^a-zA-Z0-9\\s]
는 영문자, 숫자, 공백 문자를 제외한 모든 문자를 나타냅니다.
결론
정규 표현식은 문자열 처리에서 매우 강력한 도구로 활용될 수 있습니다. 복잡한 문자열 패턴을 효과적으로 처리하고 변환하는데 활용해보세요.