【问题标题】:c# , Regex ,textblock accepts only numbers and , '+' , '-'c# , Regex ,textblock 只接受数字和 , '+' , '-'
【发布时间】:2020-04-25 15:26:34
【问题描述】:

我这样做是为了让它只接受数字,并且我希望它也对 0 以下的数字使用 -,+ 运算符:

e.Handled = new Regex("[^0-9]+").IsMatch(e.Text);

【问题讨论】:

  • 此模式[^0-9]+ 匹配除数字 0-9 之外的任何字符的 1 次或多次出现。 -,+ operators for numbers under 0 是什么意思?
  • 我的意思是我需要所有数字,.....-2,-1,0,1,2,3... 高于和低于 0

标签: c# regex wpf


【解决方案1】:

正则表达式中的某些字符作为 + 和 - 语法的一部分,以及其中的一部分,要对它们进行转义,您需要使用 \ 字符。

^\-?[\d]+$

现在这会查找可能以 - 开头的任何数字,然后是任何数字,并且必须以数字结尾。

RegexR 之类的东西是构建 Regex 的好工具: https://regexr.com/

【讨论】:

  • 如何使用它,如果我用字符串替换它("^\-?[\d]+$") 它会发送错误 - 无法识别
  • e.Handled = new Regex("^\\-?[\\d]+$").IsMatch(e.Text);
  • 减号 (-) 字符不需要转义,它不是特殊字符。也许你对它在字符类中的使用感到困惑。
  • e.Handled = new Regex("[^0-9.-]+").IsMatch(e.Text);这对我有用,谢谢
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-12-15
  • 1970-01-01
  • 1970-01-01
  • 2011-04-17
相关资源
最近更新 更多