1

C++ コードについて助けが必要です。

ファイルを検索して行ごとに読み取りたいのですが、電話番号の親が一致する場合は、その行を別のファイルに出力する必要があります。

文字列を一致させることはできますが、よくわかりません : 電話番号の形式/パターンを一致させる方法 電話番号は異なる場合があります。電話番号の一致の形式に従いたいだけです。

番号の例は、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++;   
                 }
            }
         }
4

1 に答える 1

5

正規表現 (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

于 2013-11-10T18:36:18.483 に答える