正则表达奇怪的行为

时间:2014-12-18 19:45:14

标签: c++ regex qt

QRegExp regexpsplineedit("[a-zA-Z0-9\\_\\[\\]\\(\\)]{20}");
qlineedit->setValidator(new QRegExpValidator(regexpsplineedit,this));

这项工作 而这不是:

if(clipboardtext.contains(QRegExp("[a-zA-Z0-9\\_\\[\\]\\(\\)]{20}")))

但是这是的:

if(clipboardtext.contains(QRegExp("[a-zA-Z0-9\\_\\[\\]\\(\\)]")) && clipboardtext.length() <= 20)

为什么输入相同的文字会发生这种情况?

1 个答案:

答案 0 :(得分:0)

您是否验证字符串的长度是否小于或等于20?或者该类中至少有1个字符存在总长度是否小于或等于20?这是两个单独的验证步骤。否则,它只是^[chars]{1,20}$                      - SLN