有一批量数据如下,是个数组,
{
A队1号,
A队2号,
A队3号,
D队123号,
C队15号,
C队16号,
B队1号,
B队2号,
B队3号

规则是 
1.每个队只能出现一次
2.每个队出现时,必须是连续出现,不能混插.
 
如何写正则验证数组的有效性,最好能提示出,哪些队出现了混插导致不正确

解决方案 »

  1.   

    把数组内容提出来放一个string里,再用正则判断
      

  2.   

    把数组内容提出来放一个string里,再用正则判断
      

  3.   

    var arr= ["湖南队李某号","湖南队何心号","湖南队孙里号","人造城市江苏队任号","浙江队苏维埃号","浙江队马蔺非次我特号","上海队不许动号","上海队KAO我没动号","上海队超必杀天霸封神斩免许皆传001号"];这样的 队和号前文字数量不固定的,该怎么搞,实际场合就是这样的,上面只是简单举个例子
      

  4.   

    根据  队和号 分别split,然后在判断
      

  5.   

    试试这个方法,也许行!    public static string[] FixArray(string[] arr)
        {
            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;    }