如何建立这个正则表达式?

时间:2015-10-25 05:28:38

标签: regex

我希望匹配以下文字中的电子邮件,

uma@cs.stanford.edu - match
uma at cs.Stanford.edu - match
http://infolab.stanford.edu/~widom/yearoff.h
we
genale.stanford.edu
n <A href="mailto:cheriton@cs.stanford.edu - match
hola   @  kirti.edu - match

现在我想在电子邮件uma@cs.stanford.edu中捕获2部分电子邮件地址,例如(uma)和(cs.stanford)。

我目前的模式是:

(\w+)[(\s+at\s+)|(\s*@\s*)]+(\w+|\w+\.\w+).edu

但它匹配字符串 - infolab.stanford.edu - 这是我不想要的。 有人可以建议对此进行任何修改吗?

1 个答案:

答案 0 :(得分:0)

只要您了解此正则表达式不会验证您的电子邮件地址的正确性,而只是作为防止格式错误的地址的快速第一道防线,您的正则表达式的简单修复如下:

([\w.]+)(?:\s+at\s+|\s*@\s*)(\w+|\w+\.\w+).edu

特别是你的正则表达式缺少包含.的用户名的地址(例如我的主要电子邮件地址使用),以及中间部分混乱(假装它是一个字符类以及让它变得奇怪的东西重复??)。您可以在此处查看结果:http://refiddle.com/2js1