0 到 1 之间的正则表达式十进制值最多 4 个小数位

Sim*_*all 5 regex

我正在编写一个 C# web 应用程序并使用此正则表达式验证文本框中的数据,该正则表达式仅接受 0 和 1 之间的正十进制值:

^(0(\.\d+)?|1(\.0+)?)$
Run Code Online (Sandbox Code Playgroud)

我会像正则表达式一样进行调整以将条目限制为 4 个小数位的精度。

允许

0
0.1
0.12
0.123
0.1234
1
Run Code Online (Sandbox Code Playgroud)

不允许

-0.1
-1
1.1
2
Run Code Online (Sandbox Code Playgroud)

我发现以下正则表达式最多只允许小数点后 4 位,但我不确定如何将两者结合起来。

^(?!0\d|$)\d*(\.\d{1,4})?$
Run Code Online (Sandbox Code Playgroud)

非常感谢任何帮助,谢谢。

Wik*_*żew 5

您需要设置+用限制替换量词{1,4}

^(0(\.[0-9]{1,4})?|1(\.0{1,4})?)$
           ^^^^^        ^^^^^ 
Run Code Online (Sandbox Code Playgroud)

请参阅正则表达式演示

细节

  • ^- 字符串的开头
  • (- 外组开始
    • 0- 一个零
    • (\.[0-9]{1,4})?- 可选的 a 序列,.后跟 1 到 4 位数字
    • |- 或者
    • 1- A1
    • (\.0{1,4})?)- 可选序列.后跟 1 到 4 个零
  • $- 字符串末尾。