Regex -匹配电子邮件地址中的字符串

Regex - Matching a string within an email address

本文关键字:字符串 电子邮件地址 -匹 Regex      更新时间:2023-09-26

所以我的问题是我希望在电子邮件地址的开头匹配一定的字母组合,后面跟着@,然后是通配符,例如:

admin@*或noreply@*或spam@*或subscribe@

这能做到吗?

试试这个

^(?:admin|noreply|spam|subscribe)@'S*

在Regexr上查看

开头需要一个锚,以避免地址与前面的其他字符匹配。如果字符串只包含电子邮件地址,请在开头使用^,这将匹配字符串的开头。如果电子邮件地址被其他文本包围,则使用'b这是一个词边界。

(?:admin|noreply|spam|subscribe)是一个非捕获组,因为?:在开始,然后有一个备选列表,除以|字符。

'S*是任意数量的非白色字符,这将匹配无效的地址,但不应该造成太大的伤害。

您正在寻找使用|操作符进行分组。下面的代码可以满足你的要求。

edit:由于您将此用于电子邮件服务器规则,因此您不需要匹配整个字符串,只需要匹配其中的一部分。在这种情况下,你需要使用^来指定字符串的开始,然后删除域名部分,因为我们不关心它是什么。

^(admin|noreply|spam|subscribe)@

当然!

[A-Za-z]+@.+

表示任何字母,至少一次,但次数不限,然后是@,然后是任何东西(换行符除外),对于您的特定示例使用

(admin|noreply|spam|subscribe)@.+