在文件中搜索电话号码模式

时间:2013-11-10 18:27:28

标签: c++ regex

我需要帮助我的C ++代码。

我想搜索一个文件并逐行阅读,如果电话号码的父级匹配则必须将该行打印到另一个文件。

我能够匹配字符串但不确定:如何匹配电话号码的格式/模式电话号码可以不同。我只想按照电话号码匹配的格式。

Number的示例可以是xx-xxx-xxxx

这是我的代码看看

// reading a text file

         if (mywritingfile.is_open())
         {

                  //Getting data line from file.
              while ( getline (myfile,line) )
            {

                 if (Match the Pattren from the line)//Need Help Here.
                 {   
                     //Printing the Mached line Content Of the source File to the destination the File.
                     //Output Every line that it fetches
                     cout << line << endl;
                     mywritingfile << line << endl;
                     matches++;   
                 }
            }
         }

1 个答案:

答案 0 :(得分:4)

如何使用正则表达式(C ++ 11)。

#include <iostream>
#include <regex>

int main()
{
  std::regex r("[[:digit:]]{2}-[[:digit:]]{3}-[[:digit:]]{4}");

  std::string s1("12-311-4321");
  std::string s2("112-311-4321");

  if (std::regex_match(s1, r)) {
    std::cout << "ok" << std::endl;
  } else {
    std::cout << "not ok" << std::endl;
  }

  if (std::regex_match(s2, r)) {
    std::cout << "ok" << std::endl;
  } else {
    std::cout << "not ok" << std::endl;
  }

    return 0;
}

您需要做的就是使用std::regex_match函数检查每一行。