正则表达式单字符用户名验证

时间:2020-04-22 19:39:27

标签: java regex

下面提到的正则表达式用于验证Java中的用户输入。

username.matches("^\\p{L}+[\\p{L}\\p{Z}.']+")

正则表达式可用于多个字符输入,但不能用于单个字符输入。

由于'+'表示一个或多个字符,我很困惑如何将一个字符输入作为有效输入。

3 个答案:

答案 0 :(得分:2)

这是因为正则表达式中的两个部分都至少需要一个字符(请参见正则表达式末尾的+)。如果您希望该部分是可选的,则应改为*

答案 1 :(得分:1)

您的正则表达式至少需要2个字符。

“ ^ \ p {L} +”-至少1
“ [\ p {L} \ p {Z}。'] +”-至少1

“ +”表示一个或多个字符。

答案 2 :(得分:1)

您拥有的正则表达式将匹配2个或更多符号。原因是,这是一个(或多个)符号:

\\p{L}+

这是符号2(或更多):

[\\p{L}\\p{Z}.']+

您很可能希望最后一部分为“ 0或更大”,例如:

"^\\p{L}+[\\p{L}\\p{Z}.']*"