110,561
社区成员
发帖
与我相关
我的任务
分享
internal string AnalizePattern(string pat)
{
int length = pat.Length;
char[] destination = new char[length + 1];
pat.CopyTo(0, destination, 0, length);
destination[length] = '\0';
string str = null;
char[] chArray2 = new char[length + 1];
int num3 = 0;
int num4 = 0;
int index = 0;
while (index < length)
{
if ((destination[index] == '*') || (destination[index] == '%'))
{
while (((destination[index] == '*') || (destination[index] == '%')) && (index < length))
{
index++;
}
if (((index < length) && (num3 > 0)) || (num4 >= 2))
{
throw new Exception("ExprException.InvalidPattern(pat);");
}
num4++;
}
else if (destination[index] == '[')
{
index++;
if (index >= length)
{
throw new Exception("ExprException.InvalidPattern(pat);");
}
chArray2[num3++] = destination[index++];
if (index >= length)
{
throw new Exception("ExprException.InvalidPattern(pat);");
}
if (destination[index] != ']')
{
throw new Exception("ExprException.InvalidPattern(pat);");
}
index++;
}
else
{
chArray2[num3++] = destination[index];
index++;
}
}
str = new string(chArray2, 0, num3);
if (num4 == 0)
{
kind = 4;
return str;
}
if (num3 > 0)
{
if ((destination[0] == '*') || (destination[0] == '%'))
{
if ((destination[length - 1] == '*') || (destination[length - 1] == '%'))
{
kind = 3;
return str;
}
kind = 2;
return str;
}
kind = 1;
return str;
}
kind = 5;
return str;
}