QString
に基づいて
a の文字を置き換える必要がありQChar::category
ます。stdlibの用語で私がしたい
string.erase(std::remove_if(begin(string), end(string),
[](QChar c) {
QChar::Category cat = c.category();
return cat == .... || cat == ...; }),
string.end());
別の方法として、Unicode 文字カテゴリで機能する regexp に満足していますQString::replace
。
それは QString で可能ですか、それとも文字列std::vector<QChar>
を逆にする必要がありますか?
編集:保持したいカテゴリ:
- 最初の文字: $、_、または Unicode カテゴリの任意の文字「大文字 (Lu)」、「小文字 (Ll)」、「タイトル文字 (Lt)」、「修飾文字 (Lm)」、「その他」文字 (Lo)」、または「文字番号 (Nl)」</li>
- 残りの部分: 最初の黒丸に加えて、U+200C ゼロ幅の非結合文字、U+200D ゼロ幅の結合文字、および Unicode カテゴリの文字「非間隔マーク (Mn)」、「間隔結合マーク (Mc)」 」、「10 進数 (Nd)」、または「コネクタ句読点 (Pc)」。
複数のパスでファースト/レストを実行できます。