正则表达式不工作

时间:2012-01-25 15:54:03

标签: regex

当我因某种原因输入100但是100.0没问题时,这个正则表达式不起作用。

^(?!0*(.0+)?$)(\d+|\d*\.\d+)$ 

为什么会发生这种情况?

1 个答案:

答案 0 :(得分:3)

这是导致问题的负面预测:

0*(.0+)?$

这里的点表示任何字符 - 您想逃避它:

^(?!0*(\.0+)?$)(\d+|\d*\.\d+)$

甚至更简单,前瞻性:

^(?=.*?[1-9])(\d+|\d*\.\d+)$