【问题标题】:Remove everything except characters between '<' & '>,' in Vim -- extract email addresses from Gmail "To" field在 Vim 中删除除 '<' 和 '>,' 之间的字符之外的所有内容——从 Gmail “收件人”字段中提取电子邮件地址
【发布时间】:2011-11-18 18:57:39
【问题描述】:

我有一个以逗号分隔的电子邮件地址列表,每个实际地址都以联系人姓名开头(来自 Gmail)。这是一个例子:

Fred Flintstone <fred@flintstone.org>, Wilma Flintstone <wilma@flintstone.org>, Barney Rubble <barney@rubble.org>, Bamm-Bamm Rubble <bammbamm@rubble.org>,

转换为:

fred@flintstone.org, wilma@flintstone.org, barney@rubble.org, bammbamm@rubble.org,

背景信息:我正在尝试将联系人列表粘贴到 webex 邀请中,该邀请只能接受电子邮件地址。

Remove everything except regex match in Vim 是相关的,但在这种情况下,所有电子邮件地址都在一行中。

【问题讨论】:

    标签: vim text-extraction email-address


    【解决方案1】:

    你试过了吗?

    :s/.\{-}\%(\(,\s*\)\|<\(.\{-}\)>\)/\1\2/g
    

    以下也将起作用:

    :s/.*/\=join(map(split(submatch(0), ','), "matchstr(v:val, '<\\zs.*\\ze>')"), ', ')
    

    【讨论】:

    • :s/.*/\=join(map(split(submatch(0), ','), "matchstr(v:val, '&lt;\\zs.*\\ze&gt;')"), ', ') 也有效。
    【解决方案2】:

    使用 awk

        echo "Fred Flintstone <fred@flintstone.org>, Wilma Flintstone <wilma@flintstone.org>, Barney Rubble <barney@rubble.org>, Bamm-Bamm Rubble <bammbamm@rubble.org>
    "|awk -F'<|>' '{for (i=1;i<=NF;i++)printf (i%2==0)?$i",":""}'
    

    或在 VIM 中

    :%s/,/\r/g
    :%s/.*<\(.*\)>/\1/g
    

    【讨论】:

    • %s/.*&lt;\(.*\)&gt;/\1/g 结果为Fred Flintstone &lt;fred@flintstone.org&gt; Wilma Flintstone &lt;wilma@flintstone.org&gt; Barney Rubble &lt;barney@rubble.org&gt; Bamm-Bamm Rubble &lt;bammbamm@rubble.org&gt;。
    • :%s/.*&lt;\(.*\)&gt;/\1/g 导致bammbamm@rubble.org
    • Kent 的 vim 代码背后的想法是将唯一的行分成几行,然后只保留每行尖括号之间的内容。最终,您必须在最后将所有生成的行合并为一个。
    • 感谢卢克·赫米特。运行这两行后,电子邮件地址被正确提取到不同的行中。
    • 卢克,感谢您的解释。 “J”可用于连接线。
    【解决方案3】:

    你能不能把它放到Excel中, 然后用逗号分割数据,然后 然后进行查找和替换以摆脱天使括号

    除非您使用一些代码来执行此操作,否则这将是最简单的 除非你有 100,000 的数千个地址

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2012-09-20
      • 2011-11-08
      • 2020-01-12
      • 2012-02-08
      • 2012-10-24
      • 2012-12-12
      • 2014-03-21
      • 1970-01-01
      相关资源
      最近更新 更多