我需要帮助来创建一个正则表达式,以过滤至少包含一个数字,大写字母,一个小写字母并以“ @ 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}
但是它不起作用。
答案 0 :(得分:3)
您可以使用另一个前瞻,并且需要使用锚点:
^(?=.*[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个字符。