C++ QRegularExpression计数出现次数

C++ QRegularExpression计数出现次数,c++,regex,qt,C++,Regex,Qt,我有一个QString,我想在QString中计算两件事: a) 特殊字符数 b) 连续2个字符的数量 第一次,我试过: QRegularExpression var1("[$&+,:;=?@#|'<>.^*()%!-]"); myString.count(var1); QRegularExpression var2("([a-z\\d])\\1\\1"); myString.count(var2); 还有: QRegularExpression var2("([a-zA

我有一个QString,我想在QString中计算两件事:

a) 特殊字符数

b) 连续2个字符的数量

第一次,我试过:

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

您是否尝试过字符串的简单迭代?这是一个O(n)问题。我不确定您为什么要在这里使用正则表达式。@user3427419这会耗费时间和代码!我还需要其他东西,比如大写字母数、小写字母数、数字数,以及检查和计数每个字符,我认为如果没有正则表达式就太难了。我照顾其他人,他们工作,只是这两个是你想要匹配的东西的问题?与您的特殊字符(1或10000)匹配大约需要3行。@user3427419,如何计算QString中QSet中出现的字符数?
  QRegularExpression var2("([a-z\\d])\\1");