如何从文本文件提取邮箱并导出?Dreamweaver及其他方案求助
提取文本文件中的邮箱地址解决方案
一、优化Dreamweaver查找替换方法
- 修正正则表达式:你之前的正则存在两个问题——未转义的
.会匹配任意字符,顶级域名长度限制过严,且末尾多余的|无效。修正后的正则为:\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b(适配.io/.dev等长后缀域名) - 操作步骤:
- 将文本导入Dreamweaver,按
Ctrl+F打开查找面板,切换到正则表达式模式 - 输入修正后的正则,点击「查找全部」,所有匹配的邮箱会被批量选中
- 复制选中内容到新文档,再用替换功能清理格式:查找
\s+(匹配任意空白分隔符),替换为\n,执行「全部替换」即可得到每行一个邮箱的列表 - 最后直接保存为TXT或HTML格式
- 将文本导入Dreamweaver,按
二、Notepad++ 快速提取方案
- 打开目标文本文件,按
Ctrl+H打开替换面板,勾选「正则表达式」,取消「匹配大小写」 - 查找框输入:
.*?(\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b)|.* - 替换框输入:
$1\n - 点击「全部替换」,文档将仅保留邮箱且每行一个,直接保存为TXT即可
三、Python脚本批量提取(适合大文件)
如果文本数据量较大,用脚本效率更高还能自动去重:
import re # 读取源文件 with open("source.txt", "r", encoding="utf-8") as f: content = f.read() # 匹配所有邮箱 email_pattern = re.compile(r'\b[A-Za-z0-9._%+-]+@[A-Za-z0-9.-]+\.[A-Za-z]{2,6}\b', re.IGNORECASE) emails = email_pattern.findall(content) # 去重并保存结果 unique_emails = list(set(emails)) with open("extracted_emails.txt", "w", encoding="utf-8") as f: f.write("\n".join(unique_emails))
- 将代码保存为
extract_emails.py,和源文本source.txt放在同一目录 - 运行脚本后,会生成
extracted_emails.txt,里面是每行一个的去重邮箱列表
内容的提问来源于stack exchange,提问作者COOL-TECH
相关产品推荐
相关产品推荐

