正規表現とregexとxpressive

C++だとそんなに複雑な文字列解析はしないから(あんまり複雑だとRubyを使う),これまではclx::tokernizer with clx::format_separatorだけで済ませてきたのですが,やっぱりたまにC++でも正規表現が欲しくなります*1.そこでTR1を見てみるとregexが入っていたので,ここで少しtr1::regexに慣れておいて必要ならラッパクラスでも書こうかなと思っていたのですが,ショックなことにgcc 4.1.2では,#include<tr1/regex>が通らなかった(#include<regex>でもダメ)・・・tr1::regexはまだ実装されてないんですかね.

boostのビルド必須なコードはできれば書きたくないので,現状だとベストはboost::xpressiveかなぁ.

boost::xpressiveと言えば,日本語のboost解説本だとBoost C++ Libraries プログラミング 第2版になると思いますが,この本の文字列処理部分(tokenizer, xpressive, regex, lexical_cast, format, string algorithm)の全文が,筆者のWebサイトに(サンプルとして)PDFでアップロードされてあって驚きました.文字列処理のためにboostを導入する人も多そうなので,これは便利かも.

*1:実は,format_separatorがバグってて自分の予想とは違うパース結果を返したのが原因でしたが.

広告を非表示にする