RegEx for string以数字开头,后跟字母

时间:2013-05-16 06:38:23

标签: c# .net regex winforms

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

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]?,但它允许我输入任何字符的字符串开头..

我希望这个RegEx用于C#.Net

2 个答案:

答案 0 :(得分:3)

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

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

您可以通过使用^

启动正则表达式来实现
^(1|2)[a-zA-Z]?

所以,上面的内容将匹配

答案 1 :(得分:0)

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