!regex.IsMatch无法使用csharp以窗口形式工作

问题描述

|| 我正在使用C#在窗口窗体上应用正则表达式。但是现场正则表达式不起作用
if (txtRefno.Text == \"\" && !Regex.IsMatch(txtRefno.Text,@\"^[0-9]+$\"))
{
    msg.Text = \"reference no. contain Invalid characters\";
}
但它不能正常工作,不能接受一切。 我将模式更改为“ 1”,但收到的结果相同;然后我更改了
regex.IsMatch(inputstring,pattern) == false;
的条件,则应该显示错误,但它对我也不起作用。     

解决方法

我对Regex表达式没有帮助,因为我对此不太了解,但是我认为您应该在if语句中用OR替换AND,以允许编译器在文本框为的情况下检查regex不是空的。
if (txtRefno.Text.trim() == string.Empty || !Regex.IsMatch(txtRefno.Text,@\"^[0-9]+$\"))
{
    msg.Text = \"reference no. contain Invalid characters\";
}
或者如果您不想在texbox为空的情况下显示消息,则可以使用以下内容
if (txtRefno.Text.trim() != string.Empty && !Regex.IsMatch(txtRefno.Text,@\"^[0-9]+$\"))
    {
        msg.Text = \"reference no. contain Invalid characters\";
    }
    ,问题不在于您的正则表达式,而在于布尔表达式的第一部分。比较空字符串没有意义。更改为 txtRefno.Text!= \“ \”