わかってしまえば、何のことはない。() で囲んだ部分は、マッチした中から、更に配列形式で取り出せたんですね…。もう、感動もんです。
#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 件のコメント:
コメントを投稿