正则表达式只接受 2 个位置之后

本文关键字:位置 之后 正则表达式 | 更新日期: 2023-09-27 17:56:19

嗨,我需要所有这些可能的情况都有效

123
123.1
123.12

我试过这个^[0-9]*'.[0-9]{2}$ or ^[0-9]*'.[0-9][0-9]$但不起作用,任何人都可以帮助我

正则表达式只接受 2 个位置之后

试试这个:

^[0-9]*('.[0-9]{1,2})?$

基于第二个示例,但允许一个小数点后一位或两个,并使整个小数部分可选。

[编辑]

OP改变了问题的标准 - 请参阅下面的评论。他现在希望小数点前的数字最多只允许六位数字,并要求我编辑答案以适应。

所需要的只是将*(对于任意数量的数字)替换为{0,6}(对于零到六位数字之间)。如果您至少想要一个数字,那么它将是 {1,6} .

这是修改后的正则表达式:

^[0-9]{0,6}('.[0-9]{1,2})?$

试试...

^'d{1,6}(?:'.'d{1,2})?$

* 根据建议进行编辑,使其不捕获。

几乎明白了...

^[0-9]*('.[0-9]{1,2})?$

您可能还需要担心以点开头的数字,将没有任何数字的点视为无效,并拒绝空数字:

^(?:'d+|'d*'.'d{1,2})$

它接受1.11.0,但拒绝.1.和(空数)。

根据您的所有要求尝试此操作

 ^('d{0,6})('.'d{1,2})?$