验证*号的地方,如果*号在中间,表示确定的位数
如果*号在末尾,表示不确定的按照这个约定,例如有规则:
(1)ABCD**ABB**
(2)ABCDD*ADD
符合(1)规则的数据,比如:
ABCD00ABB
ABCD11ABB44
ABCD01ABB111符合(2)规则的数据,比如:
ABCDD0ADD
ABCDD1ADD
当我输入一个数据,然后去按照规则判断,输入的是否符合该规则,该怎么判断呢?望高手赐教!

解决方案 »

  1.   

    根据规则,截取适当位置的值出来进行比较
    如(1)ABCD**ABB**  ABCD01ABB111 
    那么你就先截取后面值的前四位ABCD与规则比
    *号的不要管,只要管个数就可以了,然后再去6-9的数据ABB与规则比,
    如果这个时候前面比较的都正确,那么就符合了
      

  2.   

    不是有IndexOf("")这个方法的么???
      

  3.   

    var regex1 = "ABCD**ABB**";
    var str1 = "ABCD11ABB44";
    if(Regex.IsMatch(str1,regex1.replace("*","\d")))
    {
       Console.Write("格式正确");
    }
      

  4.   

     void Method(string input)
            {
                char[] arr = input.ToCharArray();
                bool flag = false;
                string[] tmp = new string[arr.Length];
                for (int i = arr.Length - 1; i >= 0; i--)
                {
                    if (arr[i] == '*')
                    {
                        if (flag)
                            tmp[i] = @"\d";
                        else
                            tmp[i] = @"\d?";
                    }
                    else
                    {
                        flag = true;
                        tmp[i] = arr[i].ToString();
                    }
                }
                Console.WriteLine(string.Concat(tmp));
            }Method("ABCD**ABB**");
    ---------------
    abcd\d\dabb\d?\d?
      

  5.   

    第一种:ABCD\d{2}ABB\d*$
    第二种:ABCD\d{1}ABB$
      

  6.   


    判断你用楼上说的MATCH就可以判断了啊。