【问题标题】:Regex To Exclude Email-Expression正则表达式排除电子邮件表达
【发布时间】:2016-11-30 15:37:01
【问题描述】:

我有 430 个不同组织的联系我们网页的 HTML 文件,我得到了这些文件来提取电子邮件。

我想出的这个正则表达式简单代码检测并查找整个文件中的电子邮件

\S*@\S*

我的问题

我正在尝试选择除电子邮件之外的所有内容,因此我可以使用 Notepad++ 的“全部替换所有打开的文档”功能来删除除电子邮件之外的所有内容。这可以用正则表达式吗?

我是否可以选择上面提供的正则表达式之外的所有内容?

【问题讨论】:

  • 提前致谢 :)
  • 查找内容(\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b)|.替换为$1。然后,您可能需要使用 Edit -> Blank Operations -> Remove Unnecessary Blank and EOL 菜单选项。
  • @WiktorStribiżew 和 trincot 你们太棒了,我真的很想学习这些东西,你们有什么推荐的资源可以用来扩展我对正则表达式的知识吗?谢谢大家 :) 让我开心
  • 我不知道你的正则表达式知识水平 :) 所以我只能建议在regexone.com 完成所有课程,阅读regular-expressions.inforegex SO tag description(还有许多其他链接到很棒的在线资源),以及名为 What does the regex mean 的社区 SO 帖子。 Rexegg.com 也很酷。

标签: html regex email notepad++ extract


【解决方案1】:

确保您安装了最新版本的 Notepad++ 以获得必要的正则表达式支持:

查找内容: (^|\s+)[^@]+(\s+|$)
替换为: \n
? 正则表达式   

. 匹配换行符 选项不会影响操作。

【讨论】:

  • 你是个传奇,谢谢 trincot
  • . matches newline 在这里是多余的,因为您的模式不包含点。
  • 确实,设置与否都无所谓。
【解决方案2】:

您需要删除所有与某些模式不匹配的文本。

您需要使用(...) 匹配和捕获电子邮件捕获组,然后您需要匹配其他所有内容。

使用这样的模式:( + your_pattern + )|.,并替换为$1

或者,使用:

([^\s<>"]+@[^\s<>"]+)|.

(\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,4}\b)|.

替换为:$1

然后,您可能想要使用 Edit -> Blank Operations -> Remove Unnecessary Blank and EOL 菜单选项。

【讨论】:

  • 非常感谢 Wiktor,你是个传奇
  • 不客气。顺便说一句,对 SO 表示感谢的一种常见方式是 upvoting 原来有帮助的答案。
猜你喜欢
  • 1970-01-01
  • 2011-12-28
  • 2012-01-02
  • 2015-12-03
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多