首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >删除所有不是Regex电子邮件入口的内容

删除所有不是Regex电子邮件入口的内容
EN

Stack Overflow用户
提问于 2014-05-23 09:01:20
回答 1查看 1.4K关注 0票数 1

我有包含电子邮件附件和隐藏的电子邮件附件的行,例如,使用[at]而不是@。我想把这份清单从所有不是电子邮件的东西中清除。

TLDs是.com.us.me

样本输入

代码语言:javascript
复制
johndoe@example.com
johndoe @example.us
contant johndoe @ example . me
my email is johndoe@example.com
johndoe@example.com is my email
this johndoe @ example.com is my mail
johndoe[at]example.com 
my email is johndoe [at] example.com
johndoe[at-sign]example.com
johndoe at example.com
johndoe[at-sign]example[dot]com is my mail
Lorem ipsum dolor sit amet, consectetur adipisicing elit, johndoe[at-sign]example[dot]us 
johndoe[at-sign]example[dot]me labore et dolore magna aliqua
Sed do eiusmod tempor incididunt johndoe at example dot com
Duis aute irure dolor in reprehenderit in voluptate  JOHNDOE at EXAMPLE dot US aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur
Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum johndoe at example dot me

我正在使用Notepad++搜索和替换,我的尝试是这个[\w]+(|\s)(@|at|\[at\]|\[at-sign\])(|\s)[\w]+(|\s)(\.|dot)(|\s)(com|us|me),它似乎适用于所有的东西,但不适用于第11、12、13和15行。

这是我自己写的,这是正确的吗?

期望产出:

代码语言:javascript
复制
johndoe@example.com
johndoe@example.us
johndoe @ example . me
johndoe@example.com
johndoe@example.com
johndoe@example.com
johndoe[at]example.com 
johndoe [at] example.com
johndoe[at-sign]example.com
johndoe [at-sign] example.com
johndoe[at-sign]example[dot]com
johndoe[at-sign]example[dot]us 
johndoe[at-sign]example[dot]me
johndoe at example dot com
JOHNDOE at EXAMPLE dot US
johndoe at exampledotme

我不认为这是100%的防弹,因为我读过那个电子邮件验证可能很难。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-05-23 09:15:45

您可以简化正则表达式,而您使用的正则表达式的错误之处在于,您没有匹配dot周围的方括号

代码语言:javascript
复制
\w+\s?(?:@|at|\[at(?:-sign)?\])\s?\w+\s?(?:\.|\[dot\]|dot)\s?(?:com|us|me)
                                              ^^^^^^^

regex101演示

不过,如果要删除其他所有内容,则可以使用以下方法:

代码语言:javascript
复制
^(?:.*?(\w+ ?(?:@|at|\[at(?:-sign)?\]) ?\w+ ?(?:\.|\[dot\]|dot) ?(?:com|us|me)).*|.*)$

代之以$1

regex101演示

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/23825016

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档