嗨,我在RegEx上工作。正确的响应不应仅允许数字的十分之一,如RESPONSE =“ 925.0”,也不应允许其在百分位之后尾随零,如RESPONSE =“ 925.000”。仅正确的响应:925、0925、0925。,925.,925.00、00925
我努力了,最后想到了这个
"^-?(0)*(\d*(\.(00))?\d+.|(\d){1,3}(,(\d){3})*(\.(00))?)$"
它适用于三位数,但如果我想要38400.00,则不允许
我不太确定小数位可以是任何数字还是必须为零。如果是前者,那么这应该可以解决问题:
^-?\d{1,3}(,?\d{3})*(\.(\d{2})?)?$
如果是后者,则此操作:
^-?\d{1,3}(,?\d{3})*(\.(00)?)?$
以小数点开头的整个匹配是可选的,并且该匹配中的两个小数位也是可选的。
UPDATE我刚刚意识到,似乎您也需要在响应中接受逗号-我认为这是成千上万的等等。
根据OP的评论更新#2
^-?(\d+|\d{1,3}(,\d{3})*)(\.(00)?)?$
更新#3将链接添加到regex101,以解释此正则表达式。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句