Regex 值不大于6且带有1个十进制数字的正则表达式?

Regex 值不大于6且带有1个十进制数字的正则表达式?,regex,Regex,接受的价值观: 6.0 5.9 0.0 1.1 6 5 6.01 6.1 5.99 0.00 不接受: 6.0 5.9 0.0 1.1 6 5 6.01 6.1 5.99 0.00 我尝试过的(小数点后1位)不知道如何限制到6位 你可以用 ^([0-5](?:\.\d)?|6(?:\.0)?)$ 见 详细信息: ^-字符串的开头 (-组的开始: [0-5](?:\。\d)?-一个从0到5的数字,后跟一个可选的序列,后跟一个数字 |-或 6(?:\.0)?-6.0或6 )-组结束

接受的价值观:

6.0
5.9
0.0
1.1
6
5
6.01
6.1
5.99
0.00
不接受:

6.0
5.9
0.0
1.1
6
5
6.01
6.1
5.99
0.00
我尝试过的(小数点后1位)不知道如何限制到6位

你可以用

^([0-5](?:\.\d)?|6(?:\.0)?)$

详细信息

  • ^
    -字符串的开头
  • -组的开始:
    • [0-5](?:\。\d)?
      -一个从
      0
      5
      的数字,后跟一个可选的
      序列,后跟一个数字
    • |
      -或
    • 6(?:\.0)?
      -
      6.0
      6
  • -组结束
  • $
    -字符串结尾

使用。应将其作为答案添加…@UsagiMiyamoto:添加了解释。@WiktorStribiżew不接受6和5@DeepakJain:看,它与
5.0
6.0
匹配。您的意思是说一个小数位数在所有情况下都是可选的吗?如果您的正则表达式引擎支持,请在右括号后添加一个
?:
,以提高性能。在这种情况下,这并不重要,但无论如何,这是一个很好的实践。这是一个很好的实践,但在这种情况下,它是微不足道的,甚至连提都不提。该模式只检查3个字符字符串,开销几乎为零。在这里没有太大区别,只是为了让其他人知道,因为我最近才了解到这一点。[0-9](或0-1、0-2等)通常比\d更好使用,\d还匹配其他符号,如一些阿拉伯数字,大多数情况下,这些符号不是您想要匹配的。您学习了Python 3.x或.NET正则表达式风格,对吗?然后,这里有更多的内容供您学习:1)在.NET中,您可以使用
RegexOptions.ExplicitCapture
,所有捕获组都变成非捕获组;2)在.NET和Python 3.x中,
\d
和其他速记类默认支持Unicode,而在其他语言和风格中则不支持。但是,在.NET中,当使用
RegexOptions.ECMAScript
选项(
re.ASCII
)时,
\d
将只匹配ASCII数字(而
\w
也将只匹配ASCII字母/数字和
,如在JavaScript中)。但是注释是重写正则表达式备忘单的好地方吗?MySQL/POSIX/XSD模式正则表达式不支持非捕获组。嗯,XSD模式不支持
^
$
,因为默认情况下所有XSD模式都是锚定的。