日期:2014-05-18 浏览次数:21433 次
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; }