2

我想要此类输入的正则表达式。

1
1a
1b
1c
1d
2
2a
2b
2c

但是,如果我写以下输入,那么它不应该允许。

a
b
c

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

所以总字符串长度只有 2

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

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

我想要这个 C#.Net 的正则表达式

4

2 回答 2

6

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

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

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

^(1|2)[a-zA-Z]?

所以,上面将匹配

于 2013-05-16T06:41:37.923 回答
0

这会做到的 ^(1|2)[a-zA-Z]?$

于 2013-05-16T06:49:56.097 回答