我需要根據它們的 QChar::category
替換QString
中的字符。在STDLIB方面,我想根據謂詞替換QString中的元素
string.erase(std::remove_if(begin(string), end(string),
[](QChar c) {
QChar::Category cat = c.category();
return cat == .... || cat == ...; }),
string.end());
另外,我很高興與基於Unicode字符 類,我可以使用QString::replace
工作的正則表達式。
這是可能與QString或我真的需要將字符串 在std::vector<QChar>
和回?
編輯:我想類別保持:
- 第一個系統字符:$,_,或以Unicode類別「大寫字母(陸)」,「小寫字母的任何字符(LL ),「Titlecase letter(Lt)」,「Modifier letter(Lm)」,「Other letter(Lo)」或「Letter number(Nl)」
- 其餘:第一個項目符號加上任何U + 200C零寬度非連接字符,U + 200D零寬度連接字符和Unicode類別中的字符「非間距標記(Mn)」,「間距組合標記(Mc)」,「十進制數字號碼(Nd)」或「連接或標點符號(Pc)「。
我可以先做/多次通過休息。
要刪除哪些類別? – sgibb 2012-02-22 18:26:28
@sgibb那些不構成有效JavaScript標識符的。我會將它們添加到帖子中。 – pmr 2012-02-22 18:27:05