Boostで正規表現

今日,I先生の正規表現についてのレクチャーを聞いた.で,PerlやRubyでやるのでは芸がないので,C++で正規表現を扱うプログラムを書いてみた.といってもC++で自前で作るのはアホなので,boost::regexを使ってみた.

#include <iostream>
#include <string>
#include <boost/regex.hpp>
int main(){
std::string test="abcdd";
boost::regex r1("a(.*)");
boost::regex r2("a(.*)d");
boost::regex r3("a(.*?)");
boost::regex r4("a(.*?)d");
std::cout << "src: " << test << std::endl;
boost::smatch m;
if(boost::regex_search(test, m, r1)) std::cout << m.str(1) << std::endl;
if(boost::regex_search(test, m, r2)) std::cout << m.str(1) << std::endl;
if(boost::regex_search(test, m, r3)) std::cout << m.str(1) << std::endl;
if(boost::regex_search(test, m, r4)) std::cout << m.str(1) << std::endl;
return 0;
}

コメントする