我有一份电子邮件列表,我希望获得帮助从域列表中提取域名。
示例电子邮件列表
[email protected]
[email protected]
[email protected]
我想要的首选输出是
domain1.com
domain2.com
domain3.com
答案1
答案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。