带条件和后缀的正则表达式

regex with condition and suffix

我需要帮助来创建一个正则表达式来过滤至少有一个数字、一个大写字母、一个小写字母并以“@xyz.sd”结尾的字符串 到目前为止我已经试过了,

(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z0-9@\.]{12,25}

此完整填写除“@xyz.sd”部分以外的所有条件。我试图做到这一点,

(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z0-9@\.]+(@xyz.sd){12,25}

但是不行。

您可能会使用另一个前瞻,并且您需要使用锚点:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)(?=.*@xyz\.sd$)[a-zA-Z0-9@.]{12,25}$

或者更好的是你可以使用这个正则表达式:

^(?=.*[a-z])(?=.*[A-Z])(?=.*\d)[a-zA-Z0-9@.]{5,18}@xyz\.sd$

使用量词范围 {5,18} 而不是 {12,25},因为 @xyz.sd 将占用 7 个字符。