正则表达式,仅包含小写或大写字符或两者,用于用户名验证

时间:2010-11-04 14:24:32

标签: java regex

要验证我的字符串,我需要字符串只包含小写或大写或两种情况混合字符从A(a)到Z(z),字符串长度应该在6到12个字符长的范围内。这种约束的正则表达式是什么?

3 个答案:

答案 0 :(得分:6)

您可以使用此正则表达式:

^[\p{Lu}\p{Ll}\p{Lt}]{6,12}$

如果你不想因为被命名为François,María或Fuß而惩罚人们。

当然,Java中字符串的长度不太清楚,特别是在这里,因为PatternMatcher类只处理代码点中的长度(逻辑Unicode字符),而不是在Java内置的字符串长度中,但是非常以绰号命名的char单位(物理16位UTF-16)。

这意味着具有代理项的字符串在正则表达式引擎的角度看起来与许多其他Java类的长度不同。

正则表达式引擎正确,BTW。

答案 1 :(得分:4)

这应该有效:

[A-Za-z]{6,12}

但是,它会匹配输入字符串中的条件实例,因此您可以添加^$锚点,以确保整个输入字符串符合您的条件。

^[A-Za-z]{6,12}$

答案 2 :(得分:1)

试试这个:

[a-zA-Z]{6,12}