如何在正负整数之间进行匹配

时间:2019-06-12 10:34:26

标签: c++

我想在QLineEdit中添加一个RegExp,以便可以输入由1或n空格分隔的正整数和负整数。

所以我尝试

QString name_rx = "[0-9]+\\s+[0-9]+";
QRegExp rx;
rx.setPattern(name_rx);
QValidator* validator = new QRegExpValidator(rx, this); 
ui.LE_ObjectName->setValidator(validator);

我希望算法的输出例如:

15 -987 144745 4 -98 11 2 125

1 个答案:

答案 0 :(得分:0)

我认为这应该适合您的输入,它可以验证整行而不是分别验证每个数字。它还处理带有+号的正数。

QString name_rx = R"re(^(\+?\-?\d*\s?)*$)re";

如果可能,我使用下面的字符串在https://regex101.com/上进行了测试。

15 -987 144745 4 -98 11 2 125
-98 -3242 +123
+15 -23
10                                 -20100