gpt4 book ai didi

java - 使用正则表达式验证输入至少包含 2 个字母,允许特殊字符和普通字符

转载 作者:行者123 更新时间:2023-12-02 07:33:52 30 4
gpt4 key购买 nike

我需要一个至少包含 2 个字母的正则表达式。总长度应介于 6 到 50 个字符之间,并且还可以包含这些特殊字符 - _ 。 @

我想出了这一行,但当我输入 1 个字母和一个特殊字符(总共至少 6 个字符)时,它仍然接受。其中至少应包含 2 个字母才能使输入有效。

^(?=(?:\d*\D){2})[a-zA-Z0-9-_@\\.]{6,50}$

当我给出例如:a12@45b 时,我希望它是有效的并期望当我给出例如:a1234@时无效(此输出使我对我现在拥有的表达式有效)

最佳答案

匹配非数字 \D 并不能保证字符 a-z。

您可以更新正向前瞻以断言 2 次,而不是 a-zA-Z,然后是 a-zA-Z。请注意,您不必转义字符类中的点。

^(?=(?:[^a-zA-Z]*[A-Za-z]){2})[a-zA-Z0-9-_@.]{6,50}$

或者按照 @Thomas 的评论中的建议使模式不区分大小写并仅使用 a-z:

^(?i)(?=(?:[^a-z]*[a-z]){2})[a-z0-9-_@.]{6,50}$

关于java - 使用正则表达式验证输入至少包含 2 个字母,允许特殊字符和普通字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57287913/

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