我希望匹配以下文字中的电子邮件,
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
- 这是我不想要的。
有人可以建议对此进行任何修改吗?
答案 0 :(得分:0)
只要您了解此正则表达式不会验证您的电子邮件地址的正确性,而只是作为防止格式错误的地址的快速第一道防线,您的正则表达式的简单修复如下:
([\w.]+)(?:\s+at\s+|\s*@\s*)(\w+|\w+\.\w+).edu
特别是你的正则表达式缺少包含.
的用户名的地址(例如我的主要电子邮件地址使用),以及中间部分混乱(假装它是一个字符类以及让它变得奇怪的东西重复??)。您可以在此处查看结果:http://refiddle.com/2js1