证书PEM文件包含如下开头和结尾:
-----BEGIN CERTIFICATE----- [Base64 of certificate] -----END CERTIFICATE
我只需要提取[Base64 of certificate]
部分,也就是说,去掉"-----BEGIN CERTIFICATE----- "
和" -----END CERTIFICATE-----"
字符串,我想知道这是否可以用正则表达式来完成,如果可以,正则表达式看起来会是什么样子?
我试过了
-----BEGIN CERTIFICATE----- (.*) -----END CERTIFICATE-----
但是,它不是给我证书的Base64,而是返回所有内容。
谢谢,吉姆
5条答案
按热度按时间mepcadol1#
由于我不知道你使用的语言,我给予你一个相对可移植的模式(必须支持lookahead和lookbehind):
结果是整个图案,因为查找只是检查。
yxyvkwin2#
在perl中:
Regex解释:
0ejtzxu13#
下面是一个示例Perl代码来支持您的需求。
输出:
rekjcdws4#
base64字符集是:
[A-Za-z0-9+/\r\n]+={0,2}
-这是对PEM文件(base64证书)通常使用的内容的准确描述。=
用于填充(在末尾),\r\n
是新行字符。把所有这些放在一起,我们得到:
如果你想成为语言无关的,你可以期望页眉/页脚是一个或多个
-
字符,后跟大写字母,再后跟一个或多个-
字符。wnrlj8wa5#
下面是regex:
Java示例: