3

通常の正規表現を使用してみましたが、すべて問題ありませんでした。Unicode 文字の検索とトークン化のために wregex に切り替えたとき、失敗し、その理由がわかりません。
誰かが私がここで見逃していることを指摘できますか?

map<string, int> container;
wifstream file("ftest.txt"); 
wregex reg(_T("\\w+"));
wstring s=_T("");
while (file.good())
{
    file>>s;
    for ( wsregex_iterator it (s.cbegin(), s.cend(), reg),it_end; it != it_end; ++it)
    {
        container[(*it)[0]]++ ;
    }

}

私のファイルの内容は、次のようなペルシア語です。

بسم الله الرحمن الرحیم 
تست یک تست 2 . 2357 نفر آمار تست اولیه هرچی!!

生成されたエラーは次のとおりです。

エラー C2679: バイナリ '[' : 'const std::sub_match<_BidIt>' 型の右側のオペランドを取る演算子が見つかりません (または、受け入れ可能な変換がありません)

IntelliSense: これらのオペランドに一致する演算子 "[]" はありません。

4

1 に答える 1