gpt4 book ai didi

c++ - QRegularExpression 计数出现次数

转载 作者:太空宇宙 更新时间:2023-11-04 13:40:35 28 4
gpt4 key购买 nike

我有一个 QString,我想在 QString 中计算 2 个东西:

a) 特殊字符数

b) 连续2个字符的个数

对于第一个,我尝试了这个:

QRegularExpression var1("[$&+,:;=?@#|'<>.^*()%!-]");
myString.count(var1);

我不知道如何计算反斜杠和斜杠字符,我不确定这是否是检查ALL 特殊字符的方法。

第二个我试过这个:

QRegularExpression var2("([a-z\\d])\\1\\1");
myString.count(var2);

还有这个:

QRegularExpression var2("([a-zA-Z0-9\\d])\\1\\1");
myString.count(var2);

这根本不起作用。

请指教,我需要 QString 中连续字符的数量和特殊字符的数量。

最佳答案

第一个。请试试这个。

  QRegularExpression var1("[$&+,:;=?@#|'<>.^*()%!-/\\\\]");

您可以像其他字符一样按 1 个斜杠来计算斜杠。要合并反斜杠字符,您需要 4 个反斜杠。在正则表达式中,您需要转义反斜杠字符以匹配反斜杠字符 (\\)。在 C++ 中,您还需要转义这 2 个反斜杠。因此,您需要 4 个反斜杠。

对于第二个,你只需要一个\\1 来匹配连续的 2 个字符。\\1 表示第一个匹配组的相同字符,因此您的正则表达式实际上匹配连续的 3 个字符。

  QRegularExpression var2("([a-z\\d])\\1");

关于c++ - QRegularExpression 计数出现次数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27791683/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com