vim - 在 Vim 中删除除 '<' 和 '>,' 之间的字符之外的所有内容 -- 从 Gmail "To"字段中提取电子邮件地址

标签 vim text-extraction email-address

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

Fred Flintstone <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="f294809796b2949e9b9c8681869d9c97dc9d8095" rel="noreferrer noopener nofollow">[email protected]</a>>, Wilma Flintstone <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="fc8b9590919dbc9a909592888f88939299d2938e9b" rel="noreferrer noopener nofollow">[email protected]</a>>, Barney Rubble <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="cfadaebda1aab68fbdbaadada3aae1a0bda8" rel="noreferrer noopener nofollow">[email protected]</a>>, Bamm-Bamm Rubble <<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="2b494a4646494a46466b595e4949474e0544594c" rel="noreferrer noopener nofollow">[email protected]</a>>,

转换为:

<a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="e98f9b8c8da98f8580879d9a9d86878cc7869b8e" rel="noreferrer noopener nofollow">[email protected]</a>, <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="32455b5e5f5372545e5b5c4641465d5c571c5d4055" rel="noreferrer noopener nofollow">[email protected]</a>, <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="244645564a415d645651464648410a4b5643" rel="noreferrer noopener nofollow">[email protected]</a>, <a href="https://stackoverflow.com/cdn-cgi/l/email-protection" class="__cf_email__" data-cfemail="0e6c6f63636c6f63634e7c7b6c6c626b20617c69" rel="noreferrer noopener nofollow">[email protected]</a>,

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

Remove everything except regex match in Vim 是相关的,但在本例中所有电子邮件地址都在一行上。

最佳答案

你尝试过吗?

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

以下内容也适用:

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

关于vim - 在 Vim 中删除除 '<' 和 '>,' 之间的字符之外的所有内容 -- 从 Gmail "To"字段中提取电子邮件地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7446716/

相关文章:

用于将 PDF 转换为文本的 Python 模块

email - 为什么电子邮件地址不得超过 254 个字符?

c# - 如何从电子邮件地址 ArrayList 中删除重复的域电子邮件地址

c# - xamarin.android visual studio 2015 中的电子邮件地址验证编码?

vim - 运行用 python 编写的 vim 脚本?

pdf - 如何从 PDF 中提取文本?

vim - 在独立缓冲区内实时监控 vim 消息

pandas - 需要全部提取pandas dataframe中括号内的内容

mapping - 无法在 Vim 中映射 <C-J>

Fortran OpenMP 注释的 Vim 语法高亮显示