正则匹配浮点数

      最近需要写一个正则去匹配一个小数(小数非负,保留两位),为方便和大家一块儿学习研究,特意将我分析正则的过程写下来。

      第一,分析都会有哪些是合法的可以匹配的,以及非法的字符,先列举下来。合法的有1、1.11、0.12、0.3、0、0.00,非法的可能会出现001、01.1、01.、-1、1.123等等。

  第二,根据上面特点数据大致分两类,即小数或整数,我们对小数位和整数位分别考虑,在整数位如果不是0的话首位一定不是0,所以我们可以先写出该部分的正则([1-9]d*)匹配非0的情况,如果考虑到0 的话加或关系即可,同时需要加^限制,与是可以写成^(([1-9]d*)|0)。小数部分首先要匹配.,正则为.,然后限制一到两位小数d{1-2},连起来为.d{1-2},同时该部分是可选的,所以需要括起来加?,修改为(.d{1-2})?$,最后合成为^(([1-9]d*)|0)(.d{1-2})?$

  第三,在工具中测试该正则,将第一步列出的数据测一下,看是否符合预期

正则表达式学习

原文地址:https://www.cnblogs.com/xietong/p/5318812.html