1: //ValidateTelNums_shell.cpp
3: #include <iostream>
4: #include <iomanip>
5: #include <string>
6: #include <regex>
7: using namespace std;
9: int main(int argc, char* argv[])
10: {
11: string phonePattern =
12: "^(\\(?)" //1 Optional left parenthesis
13: "(\\d{3})" //2 Exactly 3 digits
14: "(\\)?)" //3 Optional right parenthesis
15: "([-. ]?)" //4 An optional dash, period or blank space
16: "(\\d{3})" //5 Exactly 3 digits
17: "([-. ]?)" //6 An optional dash, period or blank space
18: "(\\d{4})$";//7 Exactly 4 digits
19: regex rPhone(phonePattern);
20: string phoneNumber;
21: cout << boolalpha;
22: int lineCount = 0;
23: while (getline(cin, phoneNumber))
24: {
25: smatch m;
26: bool matched = regex_match(phoneNumber, m, rPhone);
27: cout << "matched = " << matched << "\t";
28: bool valid;
29: if (matched)
30: {
31: valid = //Fill in test here ...
32: }
33: else
34: valid = false;
35: cout << setw(2) << ++lineCount << " valid = " << valid << endl;
36: }
37: }