如果是foo 100.00
,我需要接受这些值。在这个foo将是恒定的,数字可以变化。
如果输入0代替100.00,我需要避免:例如:foo 0.00
。
^foo[\s]*[\d{1,}+(\.\d{1,2})?]
^foo[\s]*([0]{0,}(\.[0]{0,})?)*$
现在我需要检查输入数据是否与1)匹配,并且它不应该匹配2)。
scenario 1 : foo 100 - pass
scenario 2 : foo 0.00 - fail
scenario 3 : foo 123 - pass
Scenario 4 : foo 0.23 - pass
我该怎么做?我尝试了很多外观类型的解决方案。什么都没有给出正确的结果。我需要使用正则表达式执行此操作,因为我的C#代码具有匹配的算法,一次只匹配一个正则表达式而且无法更改。
答案 0 :(得分:1)
这个完成工作:
^foo\s+(?!0\.00$)\d+\.\d+$
(?!0\.00$)
为负面预测,确保没有0.00
如果小数部分是可选的:
^foo\s+(?!0\.00$)\d+(?:\.\d+)$
拒绝0
和0.0
以及0.00
:
^foo\s+(?!0(?:\.00?)?$)\d+(?:\.\d+)$