用点简化正则表达式十进制

时间:2016-12-02 10:33:12

标签: regex

在C ++中,我需要创建匹配十进制值的模式,该模式在小数点之前或之后至少包含一位数。但是,小数点也是可选的。

应该匹配的示例:

10  
1 
.123
123.
12.123

此刻我有类似的东西,但需要更简单的东西。

(\d+\.?)|(\.?\d+)|(\d+\.?\d+)

3 个答案:

答案 0 :(得分:1)

根据您的要求,您可以使用此正则表达式:

^(?:\d+\.?\d*|\.\d+)$

RegEx Demo

  • \d+\.?\d*将匹配没有小数点的数字或类似123.的数字或带小数点的数字。
  • \.\d+将匹配以小数点开头的数字。

答案 1 :(得分:0)

据我所知,这可以简化它。

(\d+\.?\d*)|(\d*\.?\d+)

答案 2 :(得分:0)

\d*\.?\d*

我不确定这是否适用于C ++,但它可以在您的示例中使用Javascript / Python。

注意:这将包括.

相关问题