字符串的正则表达式以数字开头,后跟字母

rav*_*dev 2 .net c# regex winforms

我想要这些输入的正则表达式。

1
1a
1b
1c
1d
2
2a
2b
2c
Run Code Online (Sandbox Code Playgroud)

但是,如果我编写以下输入,则不应允许。

a
b
c
Run Code Online (Sandbox Code Playgroud)

字符串必须以 1 或 2 开头(仅一次且强制),然后后跟 a 到 z 之间的任何字符(仅一次)

所以总字符串长度仅为 2

第一个字母总是 1 或 2(第一个字母是强制性的)
第二个字母是 a 到 z(非强制性)

我试过了,[1-2]?[a-zA-Z]?但它允许我输入以任何字符开头的字符串。

我想要这个用于 C#.Net 的 RegEx

Ode*_*ded 6

您需要锚定正则表达式 - 您需要指定它们需要位于字符串的开头。

您还需要指定 1 或 2必须在那里。有几种方法可以做到这一点,我选择了alternation (1|2),认为字符类是另一种选择([12])。

您可以通过以下方式启动正则表达式^

^(1|2)[a-zA-Z]?
Run Code Online (Sandbox Code Playgroud)

所以,上面的将匹配