正则表达式属性等于{NULL}的问题

时间:2015-07-17 08:50:23

标签: c# regex null

我有一个正则表达式,我正在尝试评估以下方法中的值:

    private void ValidateText()
    {
        if ((!IsOptional && Text == string.Empty))
        {
            SetIsValid(false);
        }
        else
        {
            if (this.ValidationRegex != null)
            {
                SetIsValid(this.ValidationRegex.IsMatch(this._text));
            }
            else
            {
                SetIsValid(true);
            }
        }
    }

其中:

    private Regex ValidationRegex { get; set; }

现在,当它到达this.ValidationRegex != null时,我将鼠标悬停在ValidationRegex值上并显示{NULL},因此我希望我的行返回false并进入{ {1}}陈述。

相反,此行返回else,我无法理解原因。我附上了以下截图:

enter image description here

我似乎无法解决这个问题(这不是一个线程)

2 个答案:

答案 0 :(得分:2)

Regex对象中的模式为NULL

var ValidationRegex = new Regex("NULL");

此正则表达式在输入字符串中查找字符串NULL(如This value is NULL.),ValidationRegex对象已初始化且 null。因此,if评估为true

请注意:您无法使用正则表达式检查值是否为NULL。

答案 1 :(得分:0)

According to the documentation,Regex类的ToString()(Visual Studio正在显示的内容)返回传递给Regex构造函数的正则表达式模式。

所以我认为你的模式是NULL。