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



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

1.8
1234567.123456789
.8
0.7
12.78

我试图使用"^[0-9]{7}.[0-9]{9}$";但它没有像预期的那样工作

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

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

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

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

最新更新