我有一个相当复杂的用户名验证规则,我希望有人可以帮助我改进我的正则表达式。规则是:
用户可以使用他的 15 位唯一 ID 登录
或者
使用遵循以下规则的用户名登录:
- 可以包含希腊语和英语(大写和小写)字符
- 可以包含数字
- 可以包含符号:!@#$*_
- 长度:至少 7 个。最多 14 个
- 必须包含至少 5 个字符(来自前面所述的英文、希腊文和符号字符)和至少 2 个数字
现在这是我创造的野兽
^\d{15}$|^(?=[a-zA-z0-9\p{IsGreekandCoptic}!@#$*_]{7,14}$)(?=.*[0-9].*[0-9])(?=.*[a-zA-z\p{IsGreekandCoptic}!@#$*_].*[a-zA-z\p{IsGreekandCoptic}!@#$*_].*[a-zA-z\p{IsGreekandCoptic}!@#$*_].*[a-zA-z\p{IsGreekandCoptic}!@#$*_].*[a-zA-z\p{IsGreekandCoptic}!@#$*_]).*
虽然这行得通,但我希望能做得更好。我正在用 C# 编写