[c++] C++에서의 정규 표현식과 특정 인코딩 처리

C++는 텍스트 처리 작업에 유용한 정규 표현식(Regular Expression)을 지원합니다. 또한, 다양한 문자 인코딩(Encoding)을 다룰 수 있는 강력한 라이브러리를 제공합니다. 이 글에서는 C++에서의 정규 표현식 사용법과 특정 인코딩 처리에 대해 알아보겠습니다.

정규 표현식 사용법

C++에서는 <regex> 헤더를 사용하여 정규 표현식을 다룰 수 있습니다. 아래는 간단한 예제 코드입니다.

#include <iostream>
#include <regex>
#include <string>

int main() {
    std::string str = "Hello, 123 World!";
    std::regex re("\\d+");  // 숫자에 매칭되는 정규 표현식
    std::smatch match;

    if (std::regex_search(str, match, re)) {
        std::cout << "숫자 발견: " << match.str() << std::endl;
    } else {
        std::cout << "숫자를 찾을 수 없음" << std::endl;
    }

    return 0;
}

위 코드에서는 “Hello, 123 World!” 문자열에서 숫자에 매칭되는 정규 표현식을 사용하여 숫자를 찾고 출력하는 예제입니다.

특정 인코딩 처리

C++에서는 다양한 문자 인코딩을 다루기 위해 <locale><codecvt> 라이브러리를 제공합니다. 아래는 UTF-8 문자열을 UTF-16으로 변환하는 예제 코드입니다.

#include <iostream>
#include <locale>
#include <codecvt>

int main() {
    std::wstring_convert<std::codecvt_utf8_utf16<char16_t>, char16_t> converter;
    std::u16string utf16str = converter.from_bytes(u8"안녕하세요");

    std::wcout << utf16str << std::endl;

    return 0;
}

위 코드에서는 UTF-8로 인코딩된 “안녕하세요” 문자열을 UTF-16으로 변환하여 출력하는 예제입니다.

C++를 사용하여 정규 표현식을 활용하고 특정 인코딩을 처리하는 방법에 대해 간단히 알아보았습니다.

참고문헌: