正则表达式只允许减号( - )

时间:2013-11-27 07:32:16

标签: c# regex winforms validation decimal

我正在使用此正则表达式在Textbox中将输入字符串验证为decimal值。

^\d{1,16}((\.\d{1,4})|(\.))?$

现在我想允许negative decimal个值。我在SO上发现了很多类似的问题。我试过这样的事情:

/^-?(\+|-)?\.\d{1,4}\-但无效。

我在这里问了一个新问题,因为我使用的是Textbox TextChanged事件,我需要检查输入到文本框中的每个字符。

  

所以第一个字符减去( - )符号应该是有效的

有效值:

正面值

  • 1
  • 1.
  • 1.1
  • 1.1111

负值

  • -
  • -1
  • -1.
  • -1.1
  • -1.1111

我上面的正则表达式验证了正值。如何修改我的正则表达式以允许负值?任何帮助将非常感谢。

1 个答案:

答案 0 :(得分:7)

您需要转义减号,因为-是一个特殊字符。

尝试(\+|\-)?(请注意反斜杠)。

编辑:不确定这是否符合您的要求,但这样做更简单:

^\-?\d*\.?\d*$

将匹配任何小数(小数两边的1到无限字符,有或没有 - )。 更多详情:http://regex101.com/r/rP7cG2