tm1*_*m13 2 java regex android
如何编写与具有以下属性的字符串匹配的正则表达式?:
123或123.4或123.56)。.12)。000.12,只能是0.12)一起写入。在小数点左边,您想要一个不以零开头的数字(1个或多个数字):
[1-9][0-9]*
或者可以是零:
0|[1-9][0-9]*
该值可以有一个小数点和小数点后的1-2位:
\.[0-9]{1,2}
需要左侧。小数点和小数位是可选的:
(?:0|[1-9][0-9]*)(?:\.[0-9]{1,2})?
需要第一个非捕获组来限制|模式的范围。需要第二个非捕获组,以使组合的“小数点和小数位数”模式为可选。
请注意,这将允许尾随零,例如 100.00
根据喜好,[0-9]也可以写成\d。我通常会使用\d,但是由于regex也有[1-9],我[0-9]在这里更喜欢,因为我觉得它有助于理清区别。
根据正则表达式的使用方式,您可能需要添加^开始/ $结束锚。使用时需要使用它们,使用时不需要使用它们find(),matches()但不会造成伤害:
^(?:0|[1-9][0-9]*)(?:\.[0-9]{1,2})?$