正则表达式 C# 特定字母列表中的随机字母
Regular Expression C# Random Letter from specific List of Letters
我希望字符串(长度为 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 位数字和最后一个字母的字符串 - 但是您希望字母位于字符串中的任意随机位置 - 所以您必须做一些不同的事情。
这是一个正则表达式,可以验证除字符串总长度之外的所有内容(但可以使用 str.Length == 8
进行简单测试):
^\d{0,7}[A|C|E|F|G|H|J|K|M|U|Z]{1}\d{0,7}$
这是一个简单的演示:
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
我希望字符串(长度为 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 位数字和最后一个字母的字符串 - 但是您希望字母位于字符串中的任意随机位置 - 所以您必须做一些不同的事情。
这是一个正则表达式,可以验证除字符串总长度之外的所有内容(但可以使用 str.Length == 8
进行简单测试):
^\d{0,7}[A|C|E|F|G|H|J|K|M|U|Z]{1}\d{0,7}$
这是一个简单的演示:
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