如何找出电子邮件地址是否以某物开头并以域结尾

How to find out if an email address starts with something and ends with a domain

以这封邮件为例

$email = "outlook_75AA07B2DF4B8074@outlook.com";

我需要使用 php 来确定电子邮件是否以 outlook_ 开头并以 @outlook.com 结尾。因为 75AA07B2DF4B8074 总是不同的。我已经开始了,但也不确定如何结束。

if (strpos($email, 'outlook_') === 0) {

}

preg_match('/^outlook_.*@outlook\.com$/', $email);

您可以使用带有负偏移量的 strpos 来搜索尾随 @outlook.com。由于它的长度固定为 12 个字符,您可以使用 -12strpos 的偏移量来仅在最后 12 个字符中查找 @outlook.com;因此,只有当这些字符正好是 @outlook.com 时,它才会匹配。例如:

$email = "outlook_75AA07B2DF4B8074@outlook.com";
if (strpos($email, 'outlook_') === 0 && strpos($email, '@outlook.com', -12) !== false) {
    echo "outlook email address\n";
}