【问题标题】:Regex to validate that a string contains only 0 - 9, +, #, *, [ and ]正则表达式验证字符串仅包含 0 - 9、+、#、*、[ 和 ]
【发布时间】:2012-12-20 15:15:14
【问题描述】:

在我的 c# 应用程序中,我需要验证字符串以确保它们只包含以下内容:

  • 0 - 9
  • +
  • #
  • *
  • [
  • ]

当我的用户在 DataGridView 控件的单元格中编辑字符串字段时,我需要验证该值。我的 CellValidating 事件处理程序当前如下所示:

if (!Regex.IsMatch(e.FormattedValue.ToString(), @"\A\b[0-9]+\b\Z"))
{
    // notify the user that the string is invalid and cancel validation
    e.Cancel = true;
}

这似乎适用于 0 - 9,但我还没有得到一个包含我需要的所有元字符的正则表达式。我尝试一次向现有的正则表达式添加一个元字符,但它不起作用。比如……

if (!Regex.IsMatch(e.FormattedValue.ToString(), @"\A\b[0-9#]+\b\Z"))

...不允许 # 像我想的那样。逃避它也没有什么不同。谁能帮我解释一下?

【问题讨论】:

  • 单词边界标记 (\b) 会引起问题,因为您的大多数元字符都不算作“单词”的一部分。
  • 感谢 mellamokb 的解释。

标签: c# regex string validation


【解决方案1】:

使用这个正则表达式^[0-9+#*\[\]]+$

【讨论】:

  • 非常感谢您的快速回复。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2012-08-05
  • 2011-04-27
  • 2020-06-25
  • 2018-05-17
  • 2011-06-27
  • 2018-10-10
  • 1970-01-01
相关资源
最近更新 更多