C# NET中的正则表达式
我应该用c#编写一个正则表达式模式,检查输入字符串是否包含某些字符,而不包含其他字符,例如: 我希望字符串只包含a-z,不包含(d,b),并且所有字符串的长度都大于5,我写“[a-z]{5,}”,如何避免输入包含d和b 附加问题:我是否可以选择在正则表达式中设置条件,换句话说,如果哪个boolian var等于true,则检查somthing,如果它等于false,则不检查它C# NET中的正则表达式,c#,.net,regex,C#,.net,Regex,我应该用c#编写一个正则表达式模式,检查输入字符串是否包含某些字符,而不包含其他字符,例如: 我希望字符串只包含a-z,不包含(d,b),并且所有字符串的长度都大于5,我写“[a-z]{5,}”,如何避免输入包含d和b 附加问题:我是否可以选择在正则表达式中设置条件,换句话说,如果哪个boolian var等于true,则检查somthing,如果它等于false,则不检查它 如果你想跳过d和b,谢谢 [ace-z]{5,} 是的,您可以使用Regex类的isMatch方法进行布尔检查 Reg
如果你想跳过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");
}
对于第一个问题,为什么不试试这个:
[ace-z]{5,}
?
对于第二个选项,在执行正则表达式字符串之前,是否可以基于布尔变量以某种方式对其进行格式化?
或者,如果希望以编程方式排除某些字符,可以通过编程方式创建正则表达式,方法是在不排除的情况下显化所有字符。简单正则表达式:
/[ace-z]{5}/
匹配五个字符“a”、“c”或“e”和“z”之间的任何字符。我经常使用的一个有用的正则表达式资源是:
帮了我很多次。在你的正则表达式中去掉逗号。@Tim Pietzcker-是的,谢谢你没有用,regex.isMatch为这个字符串“aaaab”返回true!在正则表达式中添加逗号:)
^[ace-z]{5,}$
以允许超过5个字符。这是最好的解决方案。它不起作用,无论如何,我更喜欢避免插入某些字符的表达式,如果可能的话,不要显式编写。谢谢你的帮助!我只在Q中写了一个例子,我不能每次都明确地写一个字符范围内没有几个字符的字符。@RRR那么您排除的carachter会改变吗?那么,为什么不以编程方式生成regex extended:[abcdefg…]来排除所需的字符呢?如果我没有任何选择,我会这样做,但如果我可以编写表达式来为我做到这一点——我更喜欢在编写[abcdefgh…]时,我不会用尽regex对象的可能性