验证字符串仅包含0-9、+、#、*、[和]的正则表达式

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

......我原以为可以使用 # ,但实际上不能。即使转义字符也无法解决。有没有人能帮我搞清楚原因呢?


1
单词边界标记(\b)会导致问题,因为大多数元字符不被视为“单词”的一部分。 - mellamokb
1个回答

7

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接