gpt4 book ai didi

java - 典型用户名和密码的正则表达式

转载 作者:行者123 更新时间:2023-12-02 10:17:53 26 4
gpt4 key购买 nike

在java中使用RegEx我试图生成用户名和密码:

字母,允许:a-z、A-Z、0-9 和 @#$%!

用户名,至少一个小写字母,至少一个大写字母,字母,5-13 ch

密码,至少一个小写字母,至少一个大写字母,至少一个数字,字母,5-13个字符

但是每次我运行时,我的测试用户名:aA0@!并测试密码:aA0@!继续显示我的 Toast 消息,这表明凭据无效。

Pattern uPattern = Pattern.compile("^((?=.*[a-z])(?=.*[A-Z])([a-zA-Z0-9@#$%!]).{5,13})$");
Pattern pPattern = Pattern.compile("^((?=.*[a-z])(?=.*[A-Z])(?=.*\\d)(?=.*[@#$%!])([a-zA-Z0-9@#$%!]).{5,13})$");

if(!uPattern.matcher(mUserName.getText().toString()).matches()
|| !pPattern.matcher(mPassWord.getText().toString()).matches()){
/* and if the patterns don't match, display a Toast message */
}

最佳答案

正则表达式的([a-zA-Z0-9@#$%!]).{5,13} 消耗部分表示允许的字符串长度从 6 到 14。aA0@! 仅 5 个字符长。

根据进一步的条件,有两种方法:

  • 如果允许的字符仅包含字母、数字和 @#$%!,请替换 ([a-zA-Z0-9@#$%!])。{5, 13}[a-zA-Z0-9@#$%!]{5,13}
  • 如果您想允许除换行符之外的任何字符,请将 ([a-zA-Z0-9@#$%!]).{5,13} 替换为 。 {5,13}(即删除捕获组)。

参见Lookahead Example: Simple Password Validation了解如何简化此类正则表达式的更多提示。

关于java - 典型用户名和密码的正则表达式,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54545003/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com