使用正则表达式

时间:2018-10-04 10:54:28

标签: regex regex-negation regex-lookarounds regex-group

我收到这样的私钥:-

-----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]*(?=[-])))

您能帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:2)

您可以使用

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

请参见regex demo。您需要的值在组1中。如果支持\R(任何换行序列模式),请使用它代替\n

详细信息

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