我有一个QString,我想在QString中计算2件事:
( 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中的连续字符数和特殊字符数。
发布于 2015-01-08 08:11:03
第一个。请尝尝这个。
QRegularExpression var1("[$&+,:;=?@#|'<>.^*()%!-/\\\\]");和其他字符一样,你可以用一个斜杠来计数斜杠。要计数反斜杠字符,您需要4个反斜杠。在正则表达式中,您需要转义反斜杠char来匹配反斜杠char(\)。在C++中,您还需要避开这两个反斜杠。因此,您需要4个反斜杠。
对于第二个字符,只需要一个\1就可以匹配连续的2个字符。1表示第一个匹配组的相同字符,因此您的正则表达式实际上匹配连续的3个字符。
QRegularExpression var2("([a-z\\d])\\1");https://stackoverflow.com/questions/27791683
复制相似问题