RegEx 删除密钥和证书页眉和页脚 [重复]

Posted

技术标签:

【中文标题】RegEx 删除密钥和证书页眉和页脚 [重复]【英文标题】:RegEx to remove key and certificate headers and footers [duplicate] 【发布时间】:2018-03-13 21:36:51 【问题描述】:

我需要删除密钥和证书文件的页眉和页脚(以及在数据中找到的任何 LF)。是的,我可以对所有页眉和页脚使用 String.Replace,但可以使用 RegEx 在一行或两行中完成。我的问题是我对 RegEx 语法一无所知。谁能告诉我查找标题的搜索模式(-----BEGIN some variable text-----)并用空字符串替换它们?注意页脚都以 -----END 开头。

【问题讨论】:

我担心你很快就会被大量的反对票轰炸...How do I ask a good question?,具体来说:How to create a Minimal, Complete, and Verifiable example 你可以研究一下。不是吗? regular-expressions.info 为重复的问题道歉。我没有发现任何与我想要的相似的东西。另一个问题的答案起到了作用(即使我的字符串中没有“/”。 【参考方案1】:
using System;
using System.Text.RegularExpressions;

namespace TestRegex

    class MainClass
    
        public static void Main(string[] args)
        
            string begin = "-----BEGIN some variable text-----";
            string end = "-----END";

            Console.WriteLine(Regex.Replace(begin, "-----BEGIN .*-----", ""));
            Console.WriteLine(Regex.Replace(end, "-----END.*", ""));
            Console.ReadLine();
        
    

【讨论】:

感谢您的帮助。该字符串实际上以“-----BEGIN ENCRYPTED PRIVATE KEY-----”开头,后跟大量加密数据,然后以“-----END ENCRYPTED PRIVATE KEY-----”结尾。答案中的第一行替换行会清除整个字符串。我猜它正在替换第一个找到的字符串和最后一组破折号之间的所有内容。 是的,它替换了整个字符串。您正在寻找的结果是什么?您要删除 ------BEGIN 和 ------ 之间的变量文本,还是保留变量文本并删除破折号和 BEGIN 关键字? “ENCRYPTED PRIVATE KEY”一词因您拥有的密钥或证书类型而异。我想要一个可以删除页眉和页脚的表达式,而不管该文本如何。我在重复问题的答案中找到了答案。 字符串中间 = Regex.Replace(contents, "-----.*?-----", string.Empty, RegexOptions.Singleline);行得通。 其中“contents”是我的密钥文件的全部内容。

以上是关于RegEx 删除密钥和证书页眉和页脚 [重复]的主要内容,如果未能解决你的问题,请参考以下文章

如何从数据框中删除页眉和页脚?

从 window.print() 中删除页眉和页脚

Flexbox - 显示页眉和页脚[重复]

更改或删除 TCPDF 中的页眉和页脚

使用 R 在 .docx 报告中创建页眉和页脚?

从嵌入应用程序的内框架中删除网站页眉和页脚