. net中的正则表达式

本文关键字:正则表达式 net | 更新日期: 2023-09-27 17:49:41

我应该在c#中编写一个regex模式,检查输入字符串是否包含某些字符而不包含其他字符,例如:我想要字符串只包含a-z,不包含(d,b)和所有长度大于5的字符串,我写"[a-z]{5,}",我怎么能避免输入包含d和b?

附加问题:我可以在正则表达式中选择条件,换句话说,如果任何布尔变量等于true检查某些东西,如果它等于false不检查它?

谢谢

. net中的正则表达式

simple regex:

/[ace-z]{5}/

匹配字符'a', 'c'或'e'和'z'之间的任何字符的出现5次。

我经常使用的一个有用的正则表达式资源是:

http://regexlib.com/

帮了我很多次。

对于第一个问题,为什么不简单地试试这个:[ace-z]{5,} ?对于第二个选项,在执行之前,不能基于布尔变量以某种方式格式化正则字符串吗?或者,如果您想通过编程方式排除某些字符,您可以通过显式显示所有不排除的字符[abcdefgh....]以编程方式创建正则表达式。

如果你想跳过d和b

[ace-z]{5,}

是的,你可以使用Regex类的isMatch方法进行布尔检查

 Regex regex = new Regex("^[ace-z]{5,}$");
    if (regex.IsMatch(textBox1.Text))
    {
        errorProvider1.SetError(textBox1, String.Empty);
    }
    else
    {
        errorProvider1.SetError(textBox1, 
              "Invalid entry");
    }