[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
를 사용하여 문자열을 공백 단위로 분해하고, 각 토큰에 대해 필요한 패턴을 검사하여 전화번호를 추출합니다.
이러한 방법 중 하나를 선택하여 문자열에서 전화번호를 추출할 수 있습니다.
참고문헌:
- C++ 정규 표현식 문서: cppreference.com
- C++ 문자열 처리 문서: cplusplus.com
- Stack Overflow 같은 커뮤니티에서의 유사한 질문과 답변을 참고하세요.