以下正则表达式不适用于“45”

时间:2013-05-07 15:57:41

标签: regex

我有这个正则表达式不适用于“45”它适用于-1.3434 1.43454(+ - )[0-9]。[0-9]

正则表达式: “^(\ - )?[0-9] + \。[0-9] $”

3 个答案:

答案 0 :(得分:2)

尝试以下方法:

^(\-)?[0-9]+(\.[0-9]+)?$

从左到右解释模式

  • 从行首开始 - ^
  • 0-1的“ - ”字符 - ( - )?
  • 一个或多个数字[0-9] +
  • 组中的0-1:文字句点后跟一个或多个数字(。[0-9] +)
  • 匹配到行结束$

答案 1 :(得分:1)

它必须是这样的,允许可选的十进制:

^-?\d+(\.\d+)?$

在字符串(^)的开头,有一个可选的短划线(-?),后跟一些数字(\d+)。然后它也可以出现一次小数(\.),后跟一些数字(\d+) - 一起作为(\.\d+)?。然后它就是字符串的结尾($)。

注意:破折号不需要转义,因为它在字符类之外。

答案 2 :(得分:0)

在您的正则表达式中,点符号(。)是必需的。试试这个:

^(\-)?[0-9]+(\.?[0-9]{1,})?$

固定