正则表达式介于0到75之间,包括两位小数

时间:2017-06-15 19:19:18

标签: regex validation

我是正则表达式的初学者,所以当谈到它时,我试图通过在堆栈上查找类似的问题来学习它,但经过大量尝试后我才陷入困境我无法找到我自己的正则表达式中的问题。

我正在找人帮助我使用我已创建的正则表达式(如下所示)或者为我提供更好的正则表达式/解决方案。

我需要一个正则表达式,包括0到75之间的数字,最多4位数,包括2位十进制数字。例如 75.00 15.50 ,但是没有小数位的完整数字也应该是有效数字,例如: 75,15 (不包括 00 )。

以下是几个有效且无效的数字:

有效数字

0
0.1
0.10
5.15
5.52
15.50
74.99
75.00
75

无效数字

00
-10
-0
-0.50
00.50
05.15
75.01
76.00
76
76.19

这是我已经创建的正则表达式,显然应该修复:

^(75(?:\.00?)?|[1-7]?[0-5](?:\.\d\d?)?|\d(?:\.\d?\d)?)$

此处还有demo

P.S。我在this related question寻找类似的答案。

2 个答案:

答案 0 :(得分:2)

您需要通过以下方式修复模式:

In[17]: G1.edges()
Out[17]: [(0, 1), (0, 2), (1, 2)]

In[18]: G2.edges()
Out[18]: [(0, 2), (1, 2)]

请参阅regex demo

<强>详情:

  • ^(?:75(?:\.00?)?|7[0-4](?:\.\d\d?)?|[1-6]?\d(?:\.\d\d?)?)$ - 字符串的开头和非捕获组的开始(因为锚点可以应用于交替组中的所有备选方案)
  • ^(?: - 75(?:\.00?)?后跟可选的75.和可选的0
  • 序列
  • 0 - 或
  • | - 7[0-4](?:\.\d\d?)?后面跟着70的数字,然后是4的可选序列,数字然后是可选的位
  • . - 或
  • | - 从[1-6]?\d(?:\.\d\d?)?1的可选数字,后跟任意1位数字,然后是6的可选序列,数字,然后是可选数字< / LI>
  • . - 第一组的结尾和字符串的结尾

答案 1 :(得分:1)

我很喜欢你的演示中使用这个RegEx工具。我认为您需要为RegEx添加更多类:

^(([1-6] [0-9])$ |?^(7 [0-5])$ |?。^(([1-6] [0-9]))[0 -9] [0-9])$ |?^((7- [0-4])[0-9] [0-9])$ |。?^(75.00)$

此致