4

我有以下正则表达式模式:"[A-TVWZ]". 我需要它也接受 Empty strings "",我怎样才能在我的模式中插入它?我的 DataGridView 需要它,因为当用户离开单元格而不写任何东西时,它会在验证时出错...

4

3 回答 3

11

也许这太简单了;我会检查没有正则表达式的空字符串。

例如:

if ( string.IsNullOrEmpty( myString ) || Regex.IsMatch( "[A-TVWZ]", myString )
{
    ....
}

看:

于 2012-05-15T05:43:11.527 回答
5

试试这个"[A-TVWZ]?""^[A-TVWZ]?$"

问号 ( ?) 将确保模式匹配零次或 1 次。因此,零次表示空字符串。

于 2012-05-15T05:46:15.960 回答
3

这样做的纯正则表达式方式是

[A-TVWZ]|^$

这将匹配上述字母之一或空字符串。您的评论表明用户无论如何只能输入一个字符,因此另一种选择是

^[A-TVWZ]?$

这类似于 Waqas 的回答。但是,这个不会因为锚点而引入其他可能匹配的字符串。

于 2012-05-15T06:14:51.503 回答