【发布时间】:2022-11-21 04:32:07
【问题描述】:
我从 MIME 消息中得到以下内容;
--------------ra650umTsDNeI5lwXmFy5luF
Content-Type: text/plain; charset=UTF-8; format=flowed
Content-Transfer-Encoding: base64
TG9yZW0gSXBzdW0NCg0KSGVyZSBpcyBzb21lIG1vcmUgdGV4dA0KDQpOb3cgb24gYSAzcmQg
bGluZQ0KDQoNClRoYW5rcw0KDQo=
--------------ra650umTsDNeI5lwXmFy5luF--
我想提取 base64 编码的消息,不管它有多少行。
以下确实会在每一行上找到匹配项,但是我如何对它们进行分组,以便如果有多行 base64 匹配,它将它们分组为“一起”
var base64Regex = /^(?:[A-Za-z0-9+\/]{4})*(?:[A-Za-z0-9+\/]{4}|[A-Za-z0-9+\/]{3}=|[A-Za-z0-9+\/]{2}={2})$/gm
例如,当 MIME 内容还包含 PGP 签名时,这会给我 4 或 5 个匹配项,所以我不能简单地加入它们,因为它也会找到 base64。
理想情况下,我会修改它,以便它获取从/包括第一个匹配项到 ---------- 的所有内容,并说这是“匹配 1”,如果它找到另一个 base64 块,那就是“匹配 2”,等等。
这是显示 2 个匹配项的 regex101 的链接。简而言之,我希望这是一场比赛。
【问题讨论】:
标签: javascript regex