简单正则表达式(正则表达式)问题(.net)

Tom*_*ies 5 .net c# regex

我正在尝试使用.NET Regex来验证字符串的输入格式.字符串可以是格式

single digit 0-9 followed by
single letter A-Z OR 07 OR 03 or AA followed by
two letters A-Z
Run Code Online (Sandbox Code Playgroud)

所以0AAA,107ZF,503GH,0AAAA都是有效的.我构造我的正则表达式的字符串如下:

    "([0-9]{1})" +
    "((03$)|(07$)|(AA$)|[A-Z]{1})" +
    "([A-Z]{2})"
Run Code Online (Sandbox Code Playgroud)

然而,这并不验证第二项是03,07或AA之一的字符串.在调试时,我从用于构造正则表达式的字符串中删除了第三个术语,并发现103,507,6AA形式的输入字符串将验证.......

任何想法为什么,当我把第三个术语放回到正则表达式时,输入字符串如1AAGM不匹配?

谢谢汤姆

das*_*ght 9

这是因为你的表达式需要字符串03,07AA在那里结束($匹配输入的结尾).$从这些子表达式中删除,并将其移动到表达式的末尾.

"^[0-9](03|07|AA|[A-Z])[A-Z]{2}$"
Run Code Online (Sandbox Code Playgroud)