Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Regex 正则表达式允许0-9之间的整数,最大小数点后两位_Regex - Fatal编程技术网

Regex 正则表达式允许0-9之间的整数,最大小数点后两位

Regex 正则表达式允许0-9之间的整数,最大小数点后两位,regex,Regex,我有一个regex^[0-9]\[0-9]{1,2}$。有效值应介于0-9和仅允许1或2个小数位之间,即 1.11-正确 1.1-正确 1.111-错误 22.11-错误 然而,我输入了一个像112这样的值,它允许它!有任何更正吗?您的原始正则表达式: ^[0-9]\[0-9]{1,2}$ : ^:必须开始一行 [0-9]:一个数字 \。:文字点 [0-9]:一个数字 {1,2}:逐字匹配该字符串(这是由于您的空格) $:必须结束一行 您的测试内容不以数字结尾: 1.11-正确1.1-正确

我有一个regex
^[0-9]\[0-9]{1,2}$
。有效值应介于0-9和仅允许1或2个小数位之间,即

1.11-正确 1.1-正确

1.111-错误 22.11-错误

然而,我输入了一个像112这样的值,它允许它!有任何更正吗?

您的原始正则表达式:

^[0-9]\[0-9]{1,2}$
:

  • ^
    :必须开始一行
  • [0-9]
    :一个数字
  • \。
    :文字点
  • [0-9]
    :一个数字
  • {1,2}
    :逐字匹配该字符串(这是由于您的空格)
  • $
    :必须结束一行
您的测试内容不以数字结尾:

1.11-正确1.1-正确
1.111-错误22.11-错误
要匹配测试内容,需要删除该空格和终点线标记:

^[0-9]\[0-9]{1,2}\s
我添加了一个必需的空白字符,以确保您没有像
1.11.1
那样的点和数字。这:

  • 。。。(见上文)
  • [0-9]{1,2}
    :一位或两位数字
  • \s
    :空白字符(通常是空格或制表符,通常不是换行符或回车符)

{1,2}
中应该没有空格。此外,根据初始化正则表达式的方式,可能需要将反斜杠加倍或将其放入字符类中<代码>^[0-9]\.[0-9]{1,2}$或
^[0-9][.][0-9]{1,2}$
应该可以工作。除了
1中的空格外,还缺少一些关键信息,2
正则表达式似乎是正确的-但这通常会导致任何类型的错误。我认为您的正则表达式工作正常:@cSteusloff–您对该正则表达式的解释更正了Brian错误的空格(参见上面Wiktor的评论),与示例文本不匹配(参见下面我的答案)。