C# 用于验证字符串是否仅包含0-9、+;、#、*,[及]

C# 用于验证字符串是否仅包含0-9、+;、#、*,[及],c#,regex,string,validation,C#,Regex,String,Validation,在我的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 canc

在我的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"))

…不允许,就像我想的那样。逃避也没什么不同。有人能帮我解释一下吗?

使用这个正则表达式
^[0-9+\*\[\]+$
单词边界标记(
\b
)会引起问题,因为你的大多数元字符都不算作“单词”的一部分。谢谢你的解释,mellamokb。非常感谢你的快速回复。