[c++] 문자열에서 전화번호 추출하는 방법

정규 표현식 사용

정규 표현식은 문자열에서 패턴을 찾아내는 강력한 도구입니다. 아래는 C++에서 정규 표현식을 사용하여 전화번호를 추출하는 간단한 예제입니다.

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

int main() {
    std::string input = "문자열 내 전화번호는 010-1234-5678 입니다.";

    std::regex pattern("\\b(0\\d{1,2}-\\d{3,4}-\\d{4})\\b");

    std::smatch matches;
    if (std::regex_search(input, matches, pattern)) {
        std::cout << "전화번호: " << matches[0] << std::endl;
    }

    return 0;
}

이 예제에서는 std::regex를 사용하여 정규 표현식을 정의하고, std::regex_search를 사용하여 입력 문자열에서 해당 패턴을 찾습니다.

문자열 분해

또 다른 방법은 문자열을 공백이나 특정 문자로 분해하여 전화번호를 추출하는 것입니다. 아래는 이를 보여주는 간단한 예제입니다.

#include <iostream>
#include <string>
#include <sstream>

int main() {
    std::string input = "문자열 내 전화번호는 010-1234-5678 입니다.";

    std::istringstream iss(input);
    std::string token;

    while (std::getline(iss, token, ' ')) {
        if (token.find("-") != std::string::npos && token.length() == 13) {
            std::cout << "전화번호: " << token << std::endl;
        }
    }

    return 0;
}

위 예제에서는 std::istringstream를 사용하여 문자열을 공백 단위로 분해하고, 각 토큰에 대해 필요한 패턴을 검사하여 전화번호를 추출합니다.

이러한 방법 중 하나를 선택하여 문자열에서 전화번호를 추출할 수 있습니다.

참고문헌: