int characterLimit = 5;
Regex regxForAlpha = new Regex("^[a-zA-Z \n] {0,"+characterLimit.ToString()+"}+$");
if(!string.IsNullOrEmpty(e.NewTextValue))
if (!Regex.IsMatch( e.NewTextValue, regxForAlpha)){
}
else
{
}
此代码抛出NestedQuantifier异常。谁能知道为什么?
答案 0 :(得分:1)
这是一个固定的代码:
string NewTextValue = "str";
int characterLimit = 5;
string regxForAlpha = "^[a-zA-Z \n]{0,"+characterLimit.ToString()+"}$";
if(!string.IsNullOrEmpty(NewTextValue))
if (!Regex.IsMatch( NewTextValue, regxForAlpha)){
Console.WriteLine("No match");
}
else
{
Console.WriteLine("Match");
}
有关演示目的,请参阅IDEONE demo(将e.NewTextValue
更改为NewTextValue
。
有几个兴趣点:
Regex.IsMatch
接受字符串,而不是Regex对象,作为其第二个参数{0,5}+
- 并且+
导致嵌套量词问题)。[a-zA-Z \n] {0,5}
时,{0,5}
应用于左侧紧邻的空间,并且正则表达式的含义有些失真答案 1 :(得分:0)
请改变
Regex regxForAlpha = new Regex("^[a-zA-Z \n] {0,"+characterLimit.ToString()+"}+$");
到
Regex regxForAlpha = new Regex("^[a-zA-Z \n] {0,"+characterLimit.ToString()+"}$");