验证*号的地方,如果*号在中间,表示确定的位数
如果*号在末尾,表示不确定的按照这个约定,例如有规则:
(1)ABCD**ABB**
(2)ABCDD*ADD
符合(1)规则的数据,比如:
ABCD00ABB
ABCD11ABB44
ABCD01ABB111符合(2)规则的数据,比如:
ABCDD0ADD
ABCDD1ADD
当我输入一个数据,然后去按照规则判断,输入的是否符合该规则,该怎么判断呢?望高手赐教!
如果*号在末尾,表示不确定的按照这个约定,例如有规则:
(1)ABCD**ABB**
(2)ABCDD*ADD
符合(1)规则的数据,比如:
ABCD00ABB
ABCD11ABB44
ABCD01ABB111符合(2)规则的数据,比如:
ABCDD0ADD
ABCDD1ADD
当我输入一个数据,然后去按照规则判断,输入的是否符合该规则,该怎么判断呢?望高手赐教!
如(1)ABCD**ABB** ABCD01ABB111
那么你就先截取后面值的前四位ABCD与规则比
*号的不要管,只要管个数就可以了,然后再去6-9的数据ABB与规则比,
如果这个时候前面比较的都正确,那么就符合了
var str1 = "ABCD11ABB44";
if(Regex.IsMatch(str1,regex1.replace("*","\d")))
{
Console.Write("格式正确");
}
{
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?
第二种:ABCD\d{1}ABB$
判断你用楼上说的MATCH就可以判断了啊。