[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++를 사용하여 정규 표현식을 활용하고 특정 인코딩을 처리하는 방법에 대해 간단히 알아보았습니다.
참고문헌: