RegEx从子域的电子邮件地址中提取网站URL

时间:2014-05-21 17:32:32

标签: php regex

我们正试图从电子邮件列表中提取该组织的有效网址。

abc@charleston.k12.il.us很容易,但有时我们有 someone@u40gw.effingham.k12.il.us 040gw是内部邮件的子域名。

另一个例子是someone@mail.meridian223.orgsomeone@athletics.msstate.edu

什么是最有效的方法来捕获.edu +前面的名称,没有额外的子域名,或者在高中的情况下整个部分k12.il.us加上前面的名称?< / p>

到目前为止尝试过:

/@(([a-zA-Z0-9]*)([.])([a-zA-Z0-9]*)|@([a-zA-Z0-9]*)([.])([a-zA-Z0-9]*)([.])([a-zA-Z0-9]*)([.])([a-zA-Z0-9]*)([.])([a-zA-Z0-9]*))/

1 个答案:

答案 0 :(得分:1)

您可以尝试以下正则表达式模式:

@.*?([^.]+[.]\w{3}|[^.]+[.]k12[.]il[.]us)$

Regular expression visualization

在哪里,您可以将\w{3}替换为可能的扩展程序列表,例如orgedunet等。例如:

@.*?([^.]+[.](edu|org|net|info|com)|[^.]+[.]k12[.]il[.]us)$

您可以在regexr.com

上看到它