如何在 EmEditor 或 Notepad++ 中从电子邮件列表中提取域名

如何在 EmEditor 或 Notepad++ 中从电子邮件列表中提取域名

我有一份电子邮件列表,我希望获得帮助从域列表中提取域名。

示例电子邮件列表

[email protected]
[email protected]
[email protected]

我想要的首选输出是

domain1.com
domain2.com
domain3.com

答案1

  • Ctrl+H
  • 找什么:^.+@
  • 用。。。来代替:LEAVE EMPTY
  • 打钩 环绕
  • 选择 正则表达式
  • 取消勾选 . matches newline
  • Replace all

解释:

^           # beginning of line
.+          # 1 or more any character but newline
@           # @ character

截图(之前):

在此处输入图片描述

截图(之后):

在此处输入图片描述

答案2

我假设您的意思是让每封电子邮件都显示在一行上,如下所示:

Sample Email list
[email protected]
[email protected]
[email protected]

如果这不是您列出的清单,事情就会变得有点困难,但不会太难。

对于每个地址,您都有三个*部分:用户名,@ 符号和域。第一个和最后一个会有所不同,但由于它们总是由 @ 分隔,所以这实际上非常简单:

在 Notepad++(或任何支持正则表达式的文本编辑器)中,您将搜索包含除 @、@ 和另一个任意字符串之外的任何内容的任意字符串:.*@.*

由于您想要返回第二个任意字符串,请将其括在圆括号中以保存它:.*@(.*)
现在,在“替换”字段中,告诉它返回已保存的字符串:$1


(那么,如果你的列表真的只有一行怎么办?你需要搜索“任何不是分隔条目的字符”,而不是“任何任意字符”。在正则表达式中,我们使用方括号来提供“要查找的内容”列表,并将插入符号 ( ^) 作为第一个表示“内容”的符号不是查找”。因此,对于“除空格、制表符或换行符之外的任何字符”:[^ \t\r\n]
再重复一次以查找域名。

[^ \t\r\n]+@([^ \t\r\n]+)

完成后将它们全部放在单独的行上,并在执行此操作时删除所有多余的空格,(1)找到要保存的位之后的所有空格,以便找到电子邮件地址和分隔符,但只保留域; (2)在替换字符串中添加换行符:

查找:[^ \r\n\t]+@([^ \r\n\t]+)[ \r\n\t]*
替换:$1\r\n

由于您使用的是 Notepad++,因此我假设您使用的是 Windows。如果您使用的是 Mac 或 Linux,您的换行符可能会有所不同。

稍微复杂一点,但也不复杂。)

答案3

如果将文本放入 csv 阅读器,则可以在 textvalue @ 上拆分列

您将获得 2 列。用户名(@ 之前)域名(@ 之后)

我为此使用了 Rons Data Edit。

相关内容