我有以下正则表达式 ^[a-zA-Z0-9]+$
允许字母数字字符。这里的问题是,如果我只输入数字字符,如“897687”,那么正则表达式仍然匹配。我不希望发生这种情况。应该至少有一个文本字符,并且应该以文本字符开头。例如像“a343”或“a98bder”或“a4544fgf343”
如果你能帮助我为此改进我的正则表达式,那就太好了。
最佳答案
听起来像你想要的:
^[a-zA-Z][a-zA-Z0-9]*$
解释
^ 断言行首的位置
匹配 [a-zA-Z] 下面列表中的单个字符
» a-z a(索引 97)和 z(索引 122)之间范围内的单个字符(区分大小写)
» A-Z 介于 A(索引 65)和 Z(索引 90)之间的单个字符(区分大小写)
匹配[a-zA-Z0-9]下方列表中的单个字符*
* Quantifier — 在零次和无限次之间匹配,尽可能多的次数,按需回馈(贪心)
a-z 介于 a(索引 97)和 z(索引 122)之间的单个字符(区分大小写)
A-Z 介于 A(索引 65)和 Z(索引 90)之间的单个字符(区分大小写)
0-9 0(索引 48)和 9(索引 57)之间的单个字符(区分大小写)
$ 断言行尾的位置
关于C# 正则表达式只允许字母数字,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8133669/