要验证我的字符串,我需要字符串只包含小写或大写或两种情况混合字符从A(a)到Z(z),字符串长度应该在6到12个字符长的范围内。这种约束的正则表达式是什么?
答案 0 :(得分:6)
您可以使用此正则表达式:
^[\p{Lu}\p{Ll}\p{Lt}]{6,12}$
如果你不想因为被命名为François,María或Fuß而惩罚人们。
当然,Java中字符串的长度不太清楚,特别是在这里,因为Pattern
和Matcher
类只处理代码点中的长度(逻辑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}