ぬうぱんの備忘録

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

作った曲一覧はこちら

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

なにがあった

 艦これのドロップ報告を解析するプログラムを組んでいる時に全角文字の混じった文字列を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;
}

感想

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