読者です 読者をやめる 読者になる 読者になる

ぬうぱんの備忘録

技術系のメモとかいろいろ

作った曲一覧はこちら

boost.regexに2バイト文字を食わせる

C++ boost Tips

なにがあった

 艦これのドロップ報告を解析するプログラムを組んでいる時に全角文字の混じった文字列をboost.regexに食べさせてもうまく動かなかったのでその対処法のメモ。

対処法

w付きのあれこれ使ってcharではなくwchar_tにすればOK。
たとえばこんなかんじ

#include <string>
#include <boost/regex.hpp>

int main(void){
    std::wstring Line=L"4000/6000/6000/3000 開発資材:20 ・・・";
    boost::wregex Reg(L"([0-9]+)/([0-9]+)/([0-9]+)/([0-9]+)");
    boost::wsmatch Result;
    if(boost::regex_match(Line, Result, Reg)){
        std::cerr << "fuel = " << Result.str(1) << std::endl;
        .
        .
        .
    }
    return 0;
}

感想

どういうわけかあちこちで詰まった。