使用正则表达式从私钥获取值

Get value between from a private key using regex

我收到了这样的私钥:-

-----BEGIN RSA PRIVATE KEY-----
MIIEpQIBAAKCAQEA3Tz2mr7SZiAMfQyuvBjM9Oi..Z1BjP5CE/Wm/Rr500P
DtkpjGHQzPF6vOe907y5NQLvVFGXUq/FIJZxB8k..fJdHEm2M4=
-----END RSA PRIVATE KEY-----

我想要第一行的最后一个 ----- 和最后一行的第一个 ----- 之后的数据,以便匹配组的数据如下所示:-

MIIEpQIBAAKCAQEA3Tz2mr7SZiAMfQyuvBjM9Oi..Z1BjP5CE/Wm/Rr500P
DtkpjGHQzPF6vOe907y5NQLvVFGXUq/FIJZxB8k..fJdHEm2M4=

这是我尝试过的,绝对没有得到我想要的

(?=[-]*(?=[A-Z]*(?=[-])))(.*)(?=[-]*(?=[A-Z]*(?=[-])))

你能帮我改正这个吗?

您可以使用

-{3,}\n([\s\S]*?)\n-{3,}

regex demo。您需要的值在第 1 组中。如果支持 \R(任何换行符序列模式),请使用它而不是 \n

详情

  • -{3,}\n - 三个或更多 -s,然后是换行符
  • ([\s\S]*?) - 任何 0+ 个字符,尽可能少
  • \n-{3,} - 一个换行符和三个或更多 - 个字符。