Print .pdf filenames from a directory with Boost.regex
This is my code:
path Path = "e:\\Documents\\";
boost::regex reg("(*.pdf)");
for(recursive_directory_iterator it(Path); it != recursive_directory_iterator(); ++it)
{
    if(boost::regex_search(it->string(), reg))
    {
        cout << *it << endl;
    }
}
But I always get and Abort() error in Visual Studio, after running the program, the problem is in this line:
boost::reg开发者_StackOverflow中文版ex reg("(*.pdf)");
Am I not declaring the regex object good ?
*.pdf isn't a regex, it's a glob (for file matching).  You need
boost::regex reg("(.*\\.pdf)"); 
- .: matches any one character
- *: 0 or more of the previous match
- \\: to make a single- \for escaping (ignore the regex meaning of the next character)
 
         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论