Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/298.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
正则表达式C#特定字母列表中的随机字母_C#_Random_Expression_Letter - Fatal编程技术网

正则表达式C#特定字母列表中的随机字母

正则表达式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位数字和结

我希望字符串(长度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
)进行简单测试:

下面是一个简单的演示:

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