Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/271.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# AA99模式的正则表达式_C#_Asp.net_Regex - Fatal编程技术网

C# AA99模式的正则表达式

C# AA99模式的正则表达式,c#,asp.net,regex,C#,Asp.net,Regex,我需要一个正则表达式字符串来验证帐户代码。代码是四个字符,必须以字母开头,后跟字母数字,然后再后跟数字(即AC23,D345,CT75) 我当前有以下语句将抛出错误 if (!Regex.Match(iLineItem.Code, @"^[A-Za-z0-9][A-Za-z0-9]*$").Success) yield return new RuleViolation("Code has invalid format.", "Code"); 如何将字符串更改为不允许A99A作为代码 提

我需要一个正则表达式字符串来验证帐户代码。代码是四个字符,必须以字母开头,后跟字母数字,然后再后跟数字(即
AC23
D345
CT75

我当前有以下语句将抛出错误

if (!Regex.Match(iLineItem.Code, @"^[A-Za-z0-9][A-Za-z0-9]*$").Success)
    yield return new RuleViolation("Code has invalid format.", "Code");
如何将字符串更改为不允许
A99A
作为代码


提前谢谢

您想要的表达式是

^[a-z][a-z0-9][0-9][0-9]$
确保您使用的是“不区分大小写”标志

它由…组成

  • ^
    字符串的开头
  • [a-zA-Z]
    仅限字母字符
  • [a-zA-Z0-9]
    字母数字
  • [0-9]{2}
    仅两位数字(
    [0-9]
    表示数字,
    {2}
    表示“正好两次”)
  • $
    字符串结尾
  • 我想你需要

    "^[A-Za-z][A-Za-z0-9][0-9]{2}$"
    
    根据您的描述:

    代码是四个字符,必须以字母开头,后跟字母数字,然后后跟数字

    ^[A-Za-z]
    提供字符串开头的一个字母

    [A-Za-z0-9]
    为您提供一个字母数字


    [0-9]{2}$
    在字符串的末尾给出两个数字。

    我对最简洁的一个投票:

    i^[a-z][a-z0-9]\d{2}$
    
    开头的
    i
    表示“不区分大小写”,因此不必有一堆
    a-Za-z
    s。有些方言对旗帜的处理方式不同,因此请确保你做得正确

    \d
    表示“一位数”。它与
    [0-9]
    相同。但是,有些方言无法识别它,因此如果您的方言无法识别,请使用
    [0-9]

    最后,一些(非常有限的)方言不接受
    {2}
    (意思是“正好两次”)。如果您的没有,您将需要
    \d\d

    因此,现在您已经看到了最简洁的,下面是最不简洁的(但仍然是等效的),只有当您的方言非常有限并且不识别任何这些快捷方式时,才应该使用它:

    ^[A-Za-z][A-Za-z0-9][0-9][0-9]$
    
    我当然更喜欢前者(更具可读性,IMHO),但唉,有时人们被迫在这样的限制下工作

    ^[A-Za-z][A-Za-z0-9][0-9][0-9]$