Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/347.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 正则表达式,仅包含小写或大写字符或两者,用于用户名验证_Java_Regex - Fatal编程技术网

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

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(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}$
如果你不想惩罚那些被命名为弗朗索瓦、玛丽亚或福娃的人

当然,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的东西!