gpt4 book ai didi

c++ - 匹配金额的正则表达式

转载 作者:行者123 更新时间:2023-11-30 02:33:25 31 4
gpt4 key购买 nike

我有这个正则表达式:

^-?([0-9]{1,3})+([ 0-9]{3})*([\.0-9]{2})?$

格式应标记为有效:

190 254 254
10 254 254
1 254 982
250 254
10 254
1 154
190 254 254.22
10 254 254.22
1 254 982.22
250 254.22
10 254.22
1 154.22
-190 254 254
-10 254 254
-1 254 982
-250 254
-10 254
-1 154
-190 254 254.22
-10 254 254.22
-1 254 982.22
-250 254.22
-10 254.22
-1 154.22

但在我测试之后here我只有部分匹配。

更新:在@anubhava 先生更正正则表达式后,QLineEdit 现在也接受其他格式:

4654d654
55d54
444444

这些是我验证输入的方式:

QRegExp rx("^-?[0-9]{1,3}(?: [0-9]{3})*(?:\.[0-9]{0,2})?$");
QValidator *currencyValidator = new QRegExpValidator(rx, this);
ui->unitPrice->setValidator(currencyValidator);

原来我没有转义反斜杠:

QRegExp rx("^-?[0-9]{1,3}(?: [0-9]{3})*(?:\\.[0-9]{0,2})?$");
^

最佳答案

您可以通过修改您的正则表达式来修复它:

^-?[0-9]{1,3}(?: [0-9]{3})*(?:\.[0-9]{0,2})?$

而不是在字符类中保留空格和 DOT 在字符类之前匹配它们。

Updated Regex Demo

关于c++ - 匹配金额的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/35522044/

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