1: //regex_matches.cpp (based on a Deitel example) 2: //Demonstrates the use of regular expressions. 4: #include <iostream> 5: using namespace std; 7: #include <string> 8: using std::string; 10: #include "boost/regex.hpp" 11: using boost::regex; 12: using boost::smatch; 13: using boost::regex_search; 14: using boost::match_not_dot_newline; 16: int main() 17: { 18: cout << endl; 20: //Create a regular expression 21: boost::regex expression("J.*\\d[0-35-9]-\\d\\d-\\d\\d\\."); 23: //Create a string to be tested 24: string string1 = "Jane's Birthday is 05-12-75.\n" 25: "Dave's Birthday is 11-04-68.\n" 26: "John's Birthday is 04-28-73.\n" 27: "Joe's Birthday is 12-17-77."; 29: //Create an smatch object to hold the search results 30: smatch match; 32: //Match regular expression to string and print out all matches 33: //match_not_dot_newline causes . not to match \n 34: while (regex_search(string1, match, expression, match_not_dot_newline)) 35: { 36: cout << match << endl; //Print matching string 37: string1 = match.suffix(); //Remove matched substring from string 38: } 39: cout << "\nPress Enter to continue ... "; cin.ignore(80, '\n'); 40: }