我正在尝试创建一个PCRE来匹配电子邮件来自具有与尖括号中的地址不匹配的真实姓名的行。我知道它在代码中是微不足道的,但这需要在正则表达式中工作。
大多数人将他们的真实姓名放在From行中,例如:
bob@example.com <susie@domain.com>
但垃圾邮件发送者通常会尝试伪造收件人打开我假装来自Bob的电子邮件,方法是使用他在真实姓名中的电子邮件地址使用受感染的帐户:
/([^@]+@[^\s]+) <(?!\1)>/
我正在尝试编写一个能识别电子邮件的PCRE正则表达式,其中真实姓名是电子邮件地址并且与斜角括号中的地址不匹配。
这是我们所拥有的(故意过度简化)
(?!\1)
问题是<>
是零宽度负向前瞻,它不会消耗斜角括号中的地址。上面目前仅在有角度的括号为空时匹配,即:Bob Jones <bob@example.com>
bob@example.com <bob@example.com>
。
有人有任何建议吗?
不匹配:
bob@example.com <susie@domain.com>
应匹配:
{{1}}