解析 outlook 格式的邮件
Parse emails in outlook format
我正在尝试解析以下字符串,以便我可以获取数组中 <
和 >
个字符之间的电子邮件。
Some Name <emai1@email.com>; Some Name2 <emai2@email.com>; Some Name 3 <emai3@email.com>; Some Name 4 <emai4@email.com>;
我环顾四周并尝试了很多我在网上找到的正则表达式来解决类似的问题:
const result = str.match(/(?<=<)\w+(?=>)/g) || [];
然而 none 有效,现在我只是蒙着眼睛用头撞砖墙。
非常感谢您的帮助。
您可以匹配 <
和 >
并且可以使用带有否定字符的捕获组 class:
<([^\s<>@]+@[^\s<>@]+)>
<
比赛开场 <
(
捕获 组 1
[^\s<>@]+
匹配除空白字符以外的任何字符 <
>
@
@[^\s<>@]+
匹配 @
并再次匹配之前的模式
)
关闭组 1
>
比赛结束 >
或者如果末尾必须有一个点:
<([^\s<>@]+@[^\s<>@]+\.[^\s<>@]+)>
const s = "Some Name <emai1@email.com>; Some Name2 <emai2@email.com>; Some Name 3 <emai3@email.com>; Some Name 4 <emai4@email.com>;";
const regex = /<([^\s<>@]+@[^\s<>@]+)>/g;
let result = Array.from(s.matchAll(regex), m => m[1])
console.log(result);
我正在尝试解析以下字符串,以便我可以获取数组中 <
和 >
个字符之间的电子邮件。
Some Name <emai1@email.com>; Some Name2 <emai2@email.com>; Some Name 3 <emai3@email.com>; Some Name 4 <emai4@email.com>;
我环顾四周并尝试了很多我在网上找到的正则表达式来解决类似的问题:
const result = str.match(/(?<=<)\w+(?=>)/g) || [];
然而 none 有效,现在我只是蒙着眼睛用头撞砖墙。
非常感谢您的帮助。
您可以匹配 <
和 >
并且可以使用带有否定字符的捕获组 class:
<([^\s<>@]+@[^\s<>@]+)>
<
比赛开场<
(
捕获 组 1[^\s<>@]+
匹配除空白字符以外的任何字符<
>
@
@[^\s<>@]+
匹配@
并再次匹配之前的模式
)
关闭组 1>
比赛结束>
或者如果末尾必须有一个点:
<([^\s<>@]+@[^\s<>@]+\.[^\s<>@]+)>
const s = "Some Name <emai1@email.com>; Some Name2 <emai2@email.com>; Some Name 3 <emai3@email.com>; Some Name 4 <emai4@email.com>;";
const regex = /<([^\s<>@]+@[^\s<>@]+)>/g;
let result = Array.from(s.matchAll(regex), m => m[1])
console.log(result);