Based on perl-like regular expressions, I expected the code below to match regex'es in all 8 cases. But this is not so. What am I missing?
#include <iostream> #include <regex> #include <string> using namespace std; void check(const string& s, regex re) { cout << s << " : " << (regex_match(s, re) ? "Match" : "Nope") << endl; } int main() { regex re1 = regex("[AF]+", regex::icase); check("aaa", re1); check("AAA", re1); check("fff", re1); check("FFF", re1); regex re2 = regex("[af]+", regex::icase); check("aaa", re2); check("AAA", re2); check("fff", re2); check("FFF", re2); }
Work with gcc 5.2:
$ g++ -std=c++11 test.cc -o test && ./test aaa : Match AAA : Match fff : Nope FFF : Match aaa : Match AAA : Match fff : Match FFF : Nope
source share