通常の正規表現を使用してみましたが、すべて問題ありませんでした。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: これらのオペランドに一致する演算子 "[]" はありません。