わかってしまえば、何のことはない。() で囲んだ部分は、マッチした中から、更に配列形式で取り出せたんですね…。もう、感動もんです。
#include <boost/xpressive/xpressive.hpp> #include <string> #include <iostream> int main() { std::string str = "fuga 2005/01/32 21:22:54 hoge 2003/12/03 13:21:33 fuga=\"hoe--\" <hohoho>"; boost::xpressive::sregex r = boost::xpressive::sregex::compile( "hoge (\\d\\d\\d\\d)\\/(\\d\\d)\\/(\\d\\d) (\\d\\d):(\\d\\d):(\\d\\d)" ); boost::xpressive::smatch m; if( boost::xpressive::regex_search( str, m, r ) ) { std::cout << m[1] << "/" << m[2] << "/" << m[3] << " "; std::cout << m[4] << ":" << m[5] << ":" << m[6] << std::endl; } return 0; }
追記:くーっ、隊長いつの間にこんな記事を… orz
0 件のコメント:
コメントを投稿