繁体   English   中英

十进制的正则表达式模式匹配

[英]Regex pattern matching for decimal

我需要匹配一个模式进行验证。 我想匹配一个十进制数,其中数字部分最多有 7 位数字,小数部分最多有 9 位数字。 有效的模式是:

1.8
1234567.123456789
.8
0.7
12.78

我尝试使用“ ^[0-9]{7}.[0-9]{9}$ ”但它没有按预期工作

大括号中指定的重复参数用于匹配前一个标记的精确匹配数。 您的正则表达式试图匹配 7 位数字( {7} ),后跟 9 位数字( {9} )。 您还使用点通配符来匹配小数点,因为您打算匹配文字字符点而不是任何字符,所以您应该使用斜杠 ( \\. ) 进行转义。

从您的示例来看,您似乎想要匹配小数点前的 0 到 7 位数字,然后匹配小数点后的 1 到 9 位数字。 一个合适的正则表达式是:

^[0-9]{0,7}\.[0-9]{1,9}$

请注意,我也在使用重复,但我提供了两个参数。 第一个参数是前一个标记的最小匹配数,第二个参数是最大值。 通过这种方式,我们可以非常明确地说明我们期望的确切重复次数。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM