我想要这些输入的正则表达式。
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
答案 0 :(得分:3)
您需要锚定正则表达式 - 您需要指定它们需要位于字符串的开头。
您还需要指定1或2 具有。有几种方法可以这样做,我选择了交替(1|2)
,认为字符类是另一种选择([12]
)。
您可以通过使用^
:
^(1|2)[a-zA-Z]?
所以,上面的内容将匹配
答案 1 :(得分:0)
这样做^(1|2)[a-zA-Z]?$