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]$