述語に基づいてQString内の要素を置き換える
質問
QString
の文字をそれらに基づいて置き換える必要があります
QChar::category
。 stdlibの用語で私がしたい
ジェネラコディセタグプレ
または、Unicode文字で機能する正規表現に満足しています
QString::replace
に使用できるカテゴリ。
QStringでそれは可能ですか、それとも本当に文字列を回す必要がありますか
std::vector<QChar>
で戻って?
編集:保持したいカテゴリ:
- 最初の文字の場合:$、_、またはUnicodeカテゴリの任意の文字「大文字(Lu)」、「小文字(Ll)」、「大文字(Lt)」、「修飾子文字(Lm)」 、「その他の文字(Lo)」、または「文字番号(Nl)」
- 残りの部分:最初の箇条書きに加えて、U + 200Cゼロ幅非ジョイナ文字、U + 200Dゼロ幅ジョイナ文字、およびUnicodeカテゴリ「非スペーシングマーク(Mn)」、「スペーシング結合マーク」の文字(Mc)」、「10進数(Nd)」、または「コネクタ句読点(Pc)」。
複数のパスで最初/休憩を行うことができます。
解決
Qtは、そのようなことを行う独自の方法を提供します。それが良いかどうかは疑わしいですが、Qtの慣用句はそうでしょう ジェネラコディセタグプレ
もちろん、ラムダとジェネラコディセタグコードを使用してそれを行うことができます ジェネラコディセタグプレ
ただし、慣用的な一般的なタグコードではありません。
文字列から記号を削除するのは遅く、スペースが予約されている場合は新しいものを追加するので、最初のコードサンプルが高速であることに注意してください。
所属していません StackOverflow