gpt4 book ai didi

Java 正则表达式至少需要一个字母和一个数字。还只允许选定的特殊字符

转载 作者:行者123 更新时间:2023-11-30 06:39:25 33 4
gpt4 key购买 nike

我尝试对此进行研究,让它部分工作,但是当包含特殊字符时,它就不起作用。关于特殊字符 - 不是必需的,但如果使用特殊字符,则只能是允许的特殊字符(@-(dash))。

尝试过这个,但行不通。有人可以帮忙吗?顺便说一句,它的长度至少应为 8 个字符

^(?=.*?[a-zA-Z])(?=.*?[0-9@-]).{8,}$

一些例子:

"JohnDoe" should be invalid
"JohnDoe2" should be valid
"22222222" should be invalid
"22222222a" should be valid
"JohnDoe2@" should be valid
"JohnDoe2#" should be invalid
"johndoe2" should be valid

最佳答案

这应该可以解决问题:

(?=(?:.*[a-zA-Z]){1,})(?=(?:.*[@-]){0,})(?=(? :.*[0-9]){1,})^[a-zA-Z0-9@-]*$

第一部分遵循 here 中的模式 (?=(?:.*[GROUP]){NUMBER})

然后我添加了 ^[a-zA-Z0-9@-]*$ 部分,它基本上表示从字符串的开头 ^ 到end ,$,唯一存在的字符应来自集合[a-zA-Z0-9@-]

这是Regex101与您提供的单元测试。

关于Java 正则表达式至少需要一个字母和一个数字。还只允许选定的特殊字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/44641600/

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