如何筛选保留特定前缀的邮箱,删除列表中其余内容?
可行的处理方法
方法1:用文本编辑器的正则替换(快速处理首选)
用VS Code、Sublime Text这类支持正则替换的编辑器,操作步骤如下:
- 打开你的邮箱列表文本,调出查找替换面板(VS Code按
Ctrl+H,Sublime按Ctrl+Shift+H) - 勾选「正则表达式」模式(VS Code是面板里的
.*图标,Sublime是左下角的.*) - 在「查找」框输入:
\b(?!email02|email04)\w+@\w+\.\w+;?\s* - 「替换」框留空,点击「全部替换」
这个正则会匹配所有不以email02或email04开头的邮箱地址(含后续的分号和空格),直接删除后就能得到目标格式。
方法2:用Python脚本批量处理
如果要处理大量数据或实现自动化,可使用以下Python代码:
# 原始文本(也可从文件读取) raw_text = """ Business Name 01 email01@business01.com; email02@business01.com; email03@business01.com; email04@business01.com; email05@business01.com; Business Name 02 email01@business02.com; email02@business02.com; email03@business02.com; email04@business02.com; email05@business02.com; Business Name 03 email01@business03.com; email02@business03.com; email03@business03.com; email04@business03.com; email05@business03.com; """ processed_lines = [] for line in raw_text.strip().split('\n'): # 拆分业务名称和邮箱段 parts = line.split(' ', 1) if len(parts) != 2: processed_lines.append(line) continue name, emails_str = parts # 拆分并过滤邮箱 emails = [e.strip() for e in emails_str.split(';') if e.strip()] filtered_emails = [e for e in emails if e.startswith(('email02', 'email04'))] # 重新拼接成目标格式 processed_line = f"{name} {' ; '.join(filtered_emails)};" processed_lines.append(processed_line) # 输出结果 print('\n'.join(processed_lines))
若从文件读取,将raw_text替换为open('你的文件名.txt', 'r').read()即可。
内容的提问来源于stack exchange,提问作者kylie2675647
相关产品推荐
相关产品推荐

