[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]는 영문자, 숫자, 공백 문자를 제외한 모든 문자를 나타냅니다.

결론

정규 표현식은 문자열 처리에서 매우 강력한 도구로 활용될 수 있습니다. 복잡한 문자열 패턴을 효과적으로 처리하고 변환하는데 활용해보세요.

출처 및 참고 자료: cppreference.com