【问题标题】:Emeditor Multiple Marking编辑器多重标记
【发布时间】:2023-01-31 16:33:58
【问题描述】:

我有这个包含员工及其详细信息的文本文件,我只想标记那些 job_title 是 Operations Manager 的员工和他们的 business_email。请告诉我如何在 Emeditor 或 Notepad++ 或任何其他方式中执行此操作?

样本

["state": true,
    "employees": [
        {
            "first_name": "Kate",
            "last_name": "Garland",
            "headline": "Director of Communications and Enrollment",
            "job_title": "Director of Communications and Enrollment",
            "location": "Clearwater, Florida, United States",
            "business_email": "kgarland@11howard.com",
            "personal_email": "kate@kateyoga.com",, fi}{ln}"
        },
        {
            "first_name": "Dorina",
            "last_name": "Valentin",
            "headline": "Operations Manager",
            "job_title": "Operations Manager",
            "location": "New York, New York, United States",
            "business_email": "dvalentin@11howard.com",
            "personal_email": "",, fi}{ln}"
        },
        {
            "first_name": "Shannon",
            "last_name": "Sheppard",
            "headline": "Founding Member",
            "job_title": "Founding Member",
            "location": "Tampa, Florida, United States",
            "business_email": "ssheppard@11howard.com",
            "personal_email": "sheppardsm@hotmail.com",, fn}{ln}"
        },
        {
            "first_name": "Nicole",
            "last_name": "Peacock",
            "headline": "Realtor",
            "job_title": "Realtor",
            "location": "Dayton Metropolitan Area",
            "business_email": "npeacock@11howard.com",
            "personal_email": "nicoleschuder@hotmail.com",, fi}{ln}"
        },

【问题讨论】:

  • 你试过什么了?您要解析的文件有多大?如果您包含更多详细信息,将会很有帮助。
  • 使用 JSON 解析器。避免公开真实姓名和邮件
  • @MaximilianBallard 原始 txt 文件大小为 100mb,我尝试对其进行 json 解码,但该文件未在 json 中正确解析,所以我想我需要使用记事本++或 emeditor 来标记字段,然后删除未标记的行。
  • 我还可以附上示例数据 txt 文件,如果你们能帮忙的话
  • @Toto 以上这些都不是真实的,只是样本演示数据

标签: notepad++ emeditor itemeditor


【解决方案1】:

在 EmEditor - 查找 - 高级按钮下设置以下选项,并设置以下选项:

搜索: ^s*{.+?"运营经理".+?},

并单击“全选”按钮。

然后找到“.”,单击“仅在选择中”并单击书签按钮:

这将为相关记录添加书签。如果您只想为电子邮件添加书签(您的问题并不完全清楚),请更改“。”至“business_email”并单击书签。

【讨论】:

    【解决方案2】:

    假设 JSON 文件格式正确,您可以查找 (Ctrl-F) 字符串 "job_title": "Operations Manager"。如果您想标记这些行,在“查找”对话框中有“书签”按钮。

    【讨论】:

    • 它的格式不正确,如果是我会使用 pandas 直接转换为 csv。你说的我还需要他们的商务电子邮件。那么我如何标记 2 个字段?
    • 更好的查找字符串是正则表达式 "job_title":s*"Operations Manager"。确保选择正则表达式。不幸的是,EmEditor 无法将 JSON 解析为对象,因此它无法遍历对象来查找特定字段。但我不确定为什么你不能为此使用熊猫。
    【解决方案3】:

    @克劳迪娅,您的要求已经为您完成了吗? 如果不是,请告诉我我的示例之一是否符合您的要求。

    我无法从你的要求中得知,

    • 这是否是重复性任务。在这种情况下,我总是会在 EmEditor 中创建一个宏。
    • 100mb 大小是很多数据集,从我的角度来看,过滤数据比仅标记它更方便。

    您对 EmEditor 有多熟悉? 使用 EmEditor 提取或过滤它们也非常容易(我不知道 Notepad++ 有过滤、提取等功能。由于 Notepad++ 无法打开我的大文件,我没有使用 Notepad++ 的经验)。 在这里您可以提取搜索到的数据集(原始文件保持不变)并且您有一个包含命中的新文件。 这些是通过过滤器还是通过搜索/搜索替换找到的并不重要。 请始终使用最新版本(也是测试版)的 EmEditor。

    第一个例子(查找 - 提取):

    • 如果您在第 4 点“3”中使用,您将获得整个数据集,其中0你只得到上面的行

    find-extract

    find-extract-result

    第二个例子(宏):在这个宏中只有一个命令,也可以手动完成。 我的步骤:

    • 停止刷新窗口

    • 使用正则表达式搜索数据集并使用制表符分隔符将其提取到新文档

    • 把标题放在最上面

    • 激活 CSV 视图(带选项卡)

    • 激活标题线

    • 过滤操作管理器(也可以直接提取命中)

       Redraw = false
       document.selection.Replace("{\n\s{1,}"first_name":(.+),\n\s{1,}"\w+":\s{1,}(.+),\n\s{1,}"\w+":\s{1,}(.+),\n\s{1,}"\w+":\s{1,}(.+),\n\s{1,}"\w+":\s{1,}(.+),\n\s{1,}"\w+":\s{1,}(.+),\n\s{1,}"\w+":\s{1,}(.+),,","\1\t\2\t\3\t\4\t\5\t\6\t\7",eeReplaceAll | eeFindReplaceRegExp | eeFindExtract | eeFindLineOnly,0);
       document.selection.StartOfDocument(false);
       document.selection.LineOpen(true);
       document.selection.Text= "first_name	last_name	headline	job_title	location	business_email	personal_email"
       editor.ExecuteCommandByID(22529);  // 
       document.HeadingLines = 1
       document.Filter("Operations Manager",4,0,0,0,0,0,0);
      

    result_macro_whitout_filter

    result_macro_with_filter

    您只能真正将不同解决方案选项的速度与原始数据进行比较。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2020-05-19
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2017-06-21
      • 1970-01-01
      相关资源
      最近更新 更多