标签: regex
当我因某种原因输入100但是100.0没问题时,这个正则表达式不起作用。
^(?!0*(.0+)?$)(\d+|\d*\.\d+)$
为什么会发生这种情况?
答案 0 :(得分:3)
这是导致问题的负面预测:
0*(.0+)?$
这里的点表示任何字符 - 您想逃避它:
^(?!0*(\.0+)?$)(\d+|\d*\.\d+)$
甚至更简单,前瞻性:
^(?=.*?[1-9])(\d+|\d*\.\d+)$