正则表达式C#特定字母列表中的随机字母
我希望字符串(长度8)格式为特定字母列表a、B、C中的一个字母(这两个字母都不应重复)。字母具有随机位置,其余为数字(0-9)。 例如:正则表达式C#特定字母列表中的随机字母,c#,random,expression,letter,C#,Random,Expression,Letter,我希望字符串(长度8)格式为特定字母列表a、B、C中的一个字母(这两个字母都不应重复)。字母具有随机位置,其余为数字(0-9)。 例如: 1234A567 - Valid 277897C0 - Valid A100299B - Not valid 12C3879C - Not valid 我试过这样的方法: (\d){7}(A | C | E | F | G | H | J | K | M | U | Z){1} 但这是行不通的。 帮助?您当前使用的正则表达式将只匹配一个有7位数字和结
1234A567 - Valid
277897C0 - Valid
A100299B - Not valid
12C3879C - Not valid
我试过这样的方法:
(\d){7}(A | C | E | F | G | H | J | K | M | U | Z){1}
但这是行不通的。
帮助?您当前使用的正则表达式将只匹配一个有7位数字和结尾一个字母的字符串-但是您希望字母位于字符串中的任意随机位置-因此您必须执行不同的操作 下面是一个正则表达式,它将验证除了字符串的总长度之外所需的所有内容(但可以使用
str.length==8
)进行简单测试:
下面是一个简单的演示:
var re = new Regex(@"^\d{0,7}[A|C|E|F|G|H|J|K|M|U|Z]{1}\d{0,7}$");
var strings = new string[] {
"1234A567", // - Valid
"277897C0", // - Valid
"A100299B", // - Not valid
"12C3879C" // - Not valid
};
foreach(var str in strings)
{
Console.WriteLine(str + (str.Length == 8 && re.IsMatch(str) ? " - valid" : " - not valid"));
}
结果:
1234A567 - valid
277897C0 - valid
A100299B - not valid
12C3879C - not valid
1234A567 - valid
277897C0 - valid
A100299B - not valid
12C3879C - not valid