我正在开发一个正则表达式来验证 SSH 私钥。请参阅 regex101 链接 我写了8个测试用例,其中一个失败了,我无法弄清楚。单击“函数”菜单 >“单元测试(8)”子菜单
// regex
^-----BEGIN (?:RSA|OPENSSH|ED25519) PRIVATE KEY-----(\s|\S)*-----END (?:RSA|OPENSSH|ED25519) PRIVATE KEY-----\n$
// This is a valid SSH key without the type (RSA|OPENSSH|ED25519) which can be optional
// But this fails with above regex
-----BEGIN PRIVATE KEY-----
MIIJQgIBADANBgkqhkiG9w0BAQEFAASCCSwwggkoAgEAAoICAQDdwAdrjscEeh1v
-----END PRIVATE KEY-----
有人可以帮我解决这个问题吗?谢谢
你可以使用
^-----BEGIN(?: (?:RSA|OPENSSH|ED25519))? PRIVATE KEY-----\s*(\S[\s\S]*?)\s*-----END(?: (?:RSA|OPENSSH|ED25519))? PRIVATE KEY-----\n$
请参阅 正则表达式演示。