首页 > 解决方案 > 提取特定文本块并将其放入新文档中

问题描述

我正在使用 EmEditor,我看到有一个支持 Regex 语句的“查找并提取到新文档”功能。我正在尝试从 Thunderbird 邮箱文本文件中提取一些特定的文本。邮箱里有客服聊天记录的副本。不幸的是,因为我们使用这个聊天程序的免费版本,它不允许导出数据。电子邮件正文中有很多文本,包括聊天和解码的附件。但在每个聊天的底部是姓名、电子邮件、公司名称等。

它看起来像这样:

Name: Tan
Email: someone@domcin.com
Operator: OperatorName
Start Time: 07/01/2014 14:43:47
End Time: 07/01/2014 15:35:22
Product/Service: Delivery
Phone: 123 1234567
Company: MyCompany Inc.

我尝试提取姓名、电子邮件、运营商、产品、电话和公司。更糟糕的是,并不是所有人都有陪伴,因为也有私人。此外,电话有时会有 +60 或 (60) 或空格,因为聊天用户可以输入我们想要的内容。我可以手动执行此操作,但它有 6k 个条目。

问题是是否会有一个正则表达式语句来找到它们。然后我可以使用 EmEditor 找到这个块并将结果放入一个新文档中,并进行一些调整,我应该能够制作一个 excel 文件以导入到 CRM 中。

如果这不适用于正则表达式,那么没有人知道这样做的聪明方法,所以我不必复制和粘贴所有这些?

标签: regexreplaceextractqregularexpressionemeditor

解决方案


您可以使用以下正则表达式来实现您的结果:

^(?:Name|Email|Operator|Start Time|End Time|Product\/Service|Phone|(?:Company?)).*$

上述正则表达式的解释:

^- 表示给定测试字符串的开始。

(?:Name|Email|Operator|Start Time|End Time|Product\/Service|Phone|(?:Company?))- 表示包含任何一个给定字段的非捕获组。通知字段Company可能在比赛中出现 0 次或 1 次。

|- 代表交替。

.*- 这会贪婪地匹配除换行符之外的任何内容。

$- 表示给定测试字符串的结尾。

您可以在此处找到上述正则表达式的演示。


推荐阅读