【问题标题】:Cleaning a list of Strings and Keeping only Certain Content清理字符串列表并仅保留特定内容
【发布时间】:2023-01-06 00:06:44
【问题描述】:

我有一个包含许多电子邮件地址的列表。格式类似如下。您会注意到每个“企业”都有以相同方式开头的相似电子邮件地址。

Business Name 01    email@business01.com; info@business01.com; admin@business01.com; other@business01.com; contact@business01.com;`enter code here`
Business Name 02    email@business02.com; info@business02.com; admin@business02.com; other@business02.com; contact@business02.com;
Business Name 03    email@business03.com; info@business03.com; admin@business03.com; other@business03.com; contact@business03.com;

我希望删除除以“信息”和“联系人”开头的电子邮件之外的所有内容。所以最终列表应该是这样的:

Business Name 01    info@business01.com; contact@business01.com;
Business Name 02    info@business02.com; contact@business02.com;
Business Name 03    info@business03.com; contact@business03.com;

有任何想法吗?

【问题讨论】:

    标签: notepad++


    【解决方案1】:

    不确定只使用记事本++是否可行,但使用一些 JavaScript,您可以分别处理每个业务,然后过滤以仅保留您想要的电子邮件地址,然后重新格式化它们。

    const data = `Business Name 01    email@business01.com; info@business01.com; admin@business01.com; other@business01.com; contact@business01.com;
    Business Name 02    email@business02.com; info@business02.com; admin@business02.com; other@business02.com; contact@business02.com;
    Business Name 03    email@business03.com; info@business03.com; admin@business03.com; other@business03.com; contact@business03.com;`
    
    const output = data.split("
    ")
      .map((business) => {
        const [name, emails] = business.split("    ");
        const newEmails = emails.slice(0, -1).split("; ").filter((email) => email.startsWith("info") || email.startsWith("contact"));
        return `${name}    ${newEmails.join("; ")};`;
      })
      .join("
    ");
      
    console.log(output);
    a.innerText = output;
    <pre id=a></pre>

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2018-05-05
      • 2016-04-25
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2022-12-17
      • 1970-01-01
      相关资源
      最近更新 更多