私はこの奇妙な現象に遭遇しました。私がifstreamを使ってファイルの内容をプログラムに送り、入ってくる言葉に正規表現を適用すると、ドイツの手紙äöüは私にいくつかの困難をもたらします。これらのうちのいずれかが単語の先頭に現れた場合、正規表現はそれらを認識することはできませんが、単語の中にこれらの文字のいずれかが現れる場合は認識されません。したがって、これらの行ドイツ語のUmlauteと正規表現
string word = "über";
regex check {R"(\b)" + word + R"(\b)", regex_constants::icase};
string search = "Es war genau über ihm.";
正規表現は、文字列検索でuberを見つけることができないため動作しません。しかし、
string word = "für";
regex check {R"(\b)" + word + R"(\b)", regex_constants::icase};
string search = "Es war für ihn.";
は、単語にüが表示されるために機能します。それはなぜですか、どうすればこの問題を解決できますか?私はすべてのueをueで置換し、すべてのäをaeとすべてのöで置換し、後で置換えを元に戻すことを考えましたが、もう1つの可能性はありますか?私はVisual Studio 2015で作業しています。
これは文字セットの問題ですか?すべてがUTF-8なのか何か他のものはありますか? – tadman