有一批量数据如下,是个数组,
{
A队1号,
A队2号,
A队3号,
D队123号,
C队15号,
C队16号,
B队1号,
B队2号,
B队3号
}
规则是
1.每个队只能出现一次
2.每个队出现时,必须是连续出现,不能混插.
如何写正则验证数组的有效性,最好能提示出,哪些队出现了混插导致不正确
{
A队1号,
A队2号,
A队3号,
D队123号,
C队15号,
C队16号,
B队1号,
B队2号,
B队3号
}
规则是
1.每个队只能出现一次
2.每个队出现时,必须是连续出现,不能混插.
如何写正则验证数组的有效性,最好能提示出,哪些队出现了混插导致不正确
{
if (IsInvalidArray(arr))
return new string[0]; System.Collections.ArrayList arrlist = new System.Collections.ArrayList();
System.Collections.ArrayList sorterrorteam = new System.Collections.ArrayList();
string tempname = ""; for (int i = 0; i < arr.Length; i++)
{
if (!arrlist.Contains(GetTeamName(arr[i])))
{
tempname = GetTeamName(arr[i]);
arrlist.Add(tempname);
}
else
{
if (tempname != GetTeamName(arr[i]))
sorterrorteam.Add(arr[i]);
}
} return ConvertArrayListToStringArray(sorterrorteam);//temparr;
}
private static bool IsInvalidArray(string[] arr)
{
return (arr == null || arr.Length <= 0);
}
private static string[] ConvertArrayListToStringArray(System.Collections.ArrayList arrlist)
{
if(arrlist == null)
return new string[0]; return (arrlist.ToArray(Type.GetType("System.String")) as string[]);
}
private static string GetTeamName(string str)
{
if (string.IsNullOrEmpty(str))
return ""; System.Text.RegularExpressions.Regex _regex = new System.Text.RegularExpressions.Regex(@"[\w]+队");
return _regex.Match(str).Value; }