You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何编写正则匹配包含首尾标记的完整私钥内容?

匹配完整私钥块的正则表达式解决方案

你之前的正则存在两个问题:

  1. 使用了正向预查((?=...)),这类语法仅做匹配校验,不会将匹配到的内容纳入最终结果,导致首尾的标记字符串没被捕获;
  2. [-]+的写法虽然能匹配连字符,但私钥的首尾标记是固定格式的字符串,直接写完整标记更精准,避免误匹配其他带连字符的内容。

正确的正则表达式

(?ms)^-----BEGIN PRIVATE KEY-----(.*?)^-----END PRIVATE KEY-----$

正则说明

  • (?ms):启用多行模式(m)和单行模式(s)。多行模式让^和$匹配每行的首尾;单行模式让.可以匹配换行符,确保能捕获私钥中间的多行内容。
  • 直接写入完整的首尾标记字符串,保证精确匹配目标格式。
  • (.*?):非贪婪匹配中间的所有内容,避免在存在多个私钥块时,匹配到超出预期的范围。

Node.js 示例代码

const text = `whatever
-----BEGIN PRIVATE KEY-----
DANBgkqhkiG9w0BFQEFAASCBKkwggSlAgEA
DANBgkqhkiG9w0BFQEFAASCBKkwggSlAgEA
DANBgkqhkiG9w0BFQEFAASCBKkwggSlAgEA
s1HQDfvgtTziGzwFxggjxYvfOw==
-----END PRIVATE KEY-----
whatever`;

const regex = /(?ms)^-----BEGIN PRIVATE KEY-----(.*?)^-----END PRIVATE KEY-----$/;
const matchResult = text.match(regex);

if (matchResult) {
  console.log(matchResult[0]);
}

运行上述代码,会输出你期望的完整私钥块(包含首尾标记)。

内容的提问来源于stack exchange,提问作者Node.JS

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.28 14:08:21