我有一个正则表达式,我正在尝试评估以下方法中的值:
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
,我无法理解原因。我附上了以下截图:
我似乎无法解决这个问题(这不是一个线程)
答案 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。