Java 正则表达式,仅包含小写或大写字符或两者,用于用户名验证
为了验证我的字符串,我需要该字符串只包含从A(A)到Z(Z)的小写或大写或两者混合的字符,并且字符串长度应该在6到12个字符之间。这个约束的正则表达式是什么?应该可以:Java 正则表达式,仅包含小写或大写字符或两者,用于用户名验证,java,regex,Java,Regex,为了验证我的字符串,我需要该字符串只包含从A(A)到Z(Z)的小写或大写或两者混合的字符,并且字符串长度应该在6到12个字符之间。这个约束的正则表达式是什么?应该可以: [A-Za-z]{6,12} 但是,它将在输入字符串中匹配条件的实例,因此您可以添加^和$锚定,以确保整个输入字符串符合您的条件 ^[A-Za-z]{6,12}$ 试试这个: [a-zA-Z]{6,12} 您可以使用以下正则表达式: ^[\p{Lu}\p{Ll}\p{Lt}]{6,12}$ 如果你不想惩罚那些被命名为弗朗
[A-Za-z]{6,12}
但是,它将在输入字符串中匹配条件的实例,因此您可以添加^
和$
锚定,以确保整个输入字符串符合您的条件
^[A-Za-z]{6,12}$
试试这个:
[a-zA-Z]{6,12}
您可以使用以下正则表达式:
^[\p{Lu}\p{Ll}\p{Lt}]{6,12}$
如果你不想惩罚那些被命名为弗朗索瓦、玛丽亚或福娃的人
当然,Java中字符串的长度并不十分清楚,特别是在这里,因为模式
和匹配器
类只处理代码点(逻辑Unicode字符)中的长度,而不是Java内置的字符串长度,而是非常矛盾地命名的字符
单元(UTF-16的物理16位片)
这意味着,从正则表达式引擎的角度来看,带有代理项的字符串的长度似乎与许多其他Java类的长度不同
regex引擎正确,顺便说一句。您应该添加锚定
^[A-Za-z]{6,12}$
@M42。我在上班的路上记得。谢谢。@M42如果测试是String.match()(或者Matcher.match()),那么锚就不需要了。我发现这个网站对学习/理解正则表达式非常有帮助:@Owen-+1是一个很好的资源。你应该添加锚^[A-Za-z]{6,12}$
很好的答案(+1)。这里有远远不止ascii的东西!